假设我们在 Angular 中有这样的模板,它使用 primeng p-table:
<p-table [value]="items" >
<ng-template pTemplate="header">
<tr>
<th></th>
</tr>
</ng-template>
<ng-template pTemplate="body" let-item>
<tr>
<td></td>
</tr>
</ng-template>
</p-table>
在 *.ts 代码中我们可以有这样的东西:
items: customType[] = []
当我将鼠标悬停在模板中的
[value]="items"
上时,我可以看到它的类型为 customType[]
。
当我将鼠标悬停在
let-item
上时,它告诉我它的类型为 any
。有没有办法指定类型,因为它不是推断的?
您可以尝试使用
*ngIf
定义一个新变量(作为语法),该变量将从函数中获取其类型,该函数将返回您想要的类型
html
<ng-template pTemplate="body" let-item>
<tr *ngIf="setType(item) as typedItem">
<td></td>
</tr>
</ng-template>
ts
setType(item): customType {
return item as customType;
}
在 stackblitz 中,它没有建议 html 变量的类型!