角度 9 - 轨道按模板类型检查角度



我有一个简单的trackBy语句,直到ng9才出现。

<div *ngFor="let s of skills; trackBy: s?.id">
<app-skill [skill]="s"></app-skill>
</div>

现在,通过模板类型检查,编译器抱怨:属性"s"在类型"SkillsListComponent"上不存在 - 这是真的 - 因为它被内联定义为表达式。这个编译错误也没有显示障碍,因为代码运行......只是想要一个整洁的代码库。有谁知道如何以ng9友好的方式编写它?

根据文档,您可以在trackBy中调用方法

所以你可以定义将返回id的方法

trackByItems(index: number, skill: {id: number}): number {
return skill.id;
}

我在那里指定了这样的类型,因为我不知道你用的是什么类型

在HTML中,只需调用它

<div *ngFor="let s of skills; trackBy: trackByItems">
<app-skill [skill]="s"></app-skill>
</div>

最新更新