Angular 中的严格模式可以实现以下功能
strictTemplates
、strictInjectionParameters
和 strictInputAccessModifiers
因为
strictTemplates
模板上的类型会严格检查其类型,就像在打字稿中一样。
现在在这种情况下,
trackBy
我们正在通过TrackByFunction
。当前编写的 trackByFn
不遵循类型 TrackByFunction
。
interface TrackByFunction<T> {
<U extends T>(index: number, item: T & U): any
}
因此
trackByFn
函数应遵循 TrackByFunction
接口签名。
trackByFn(index: number, item: { id: any }) {
return item.id;
}
将功能更改为:
trackByFn(index: any, item: { id: any }) {
return item ? item.id : undefined;
}
对我有用!
如果您不想使用 Type
any
,您的第二个参数需要匹配 ngFor
的可迭代元素的 Type。
迭代 FormGroup 时的一些示例:
<div *ngFor=let formGroup of formArray.controls; trackBy: trackById>
<!-- enter code here -->
</div>
public formArray: FormArray;
public trackById(_index: number, item: FormGroup | AbstractControl) {
return item.value.id;
}