p模板主体推断单个项目的类型

问题描述 投票:0回答:1

假设我们在 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
。有没有办法指定类型,因为它不是推断的?

angular typescript visual-studio-code primeng
1个回答
0
投票

您可以尝试使用

*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 变量的类型!

© www.soinside.com 2019 - 2024. All rights reserved.