首页 > 解决方案 > primeng 表上的“FilterMetadata”类型上不存在属性“值”

问题描述

我正在将一个模块从primeng 7迁移到primeng11以及angular11,代码在ng服务上运行得非常好,功能也在工作,但是在构建时我遇到了一个奇怪的错误

 error TS2339: Property 'value' does not exist on type 'FilterMetadata | FilterMetadata[]'.
  Property 'value' does not exist on type 'FilterMetadata'.

错误是针对以下代码

<input *ngIf='!col.noFilter' [style.width]="'98%'" [style.height]="'25px'" pInputText type="text"
                        [placeholder]="col.filterPlaceHolder ? col.filterPlaceHolder : ''" 
                        (input)="dt.filter($event.target.value, col.field, col.filterMatchMode)" 
                        [value]="dt.filters[col.field]?.value" />
 

我已经验证了primengFilterMetaData接口,它的属性值如下

export interface FilterMetadata {
    value?: any;
    matchMode?: string;
    operator?: string;
}

代码语法很好我已经在primeng页面文档https://www.primefaces.org/primeng/showcase/#/table上验证了相同

请帮助不确定为什么 ng serve 没有问题但构建失败。我的节点版本是节点 v10.23.0

标签: angulartypescriptprimengangular11primeng-datatable

解决方案


角度/PrimeNg:12+

这对我有用:

注意:您可以在$any此处查看用法。

 <input pInputText type="text" (input)="dt.filter($any($event.target)?.value, 'name', 'contains')"
 [value]="$any(dt.filters['name'])?.value" placeholder="Search by Name" class="p-column-filter">

参考: https ://github.com/angular/angular/issues/35293#issuecomment-584293328


推荐阅读