gpt4 book ai didi

angular - TemplateRef 类型检查/声明类型

转载 作者:行者123 更新时间:2023-12-03 20:49:53 31 4
gpt4 key购买 nike

让我们假设我有显示数据列表的泛型类型的组件:

interface DataProvider<T> {
getData(): T[];
}

...
template: '<div *vsFor="let item in dataProvider.getData()">
<ng-container *ngTemplateOutlet="rowTemplate; context:{item: item}">
</ng-container>
</div>'
...
class AwesomeList<T> {
@Input dataProvider: DataProvider<T>;
@Input rowTemplate: TemplateRef<T>;
}
当我使用它时出现了一些问题:
<awesome-list [dataProvider]="provider" [rowTemplate]="template"></awesome-list>

<ng-template #template let-object="item">
{{object.name}} // Here, type of object is unclear (?)
</ng-template>
那么有什么方法可以在这里定义对象/项目类?
附言所有这些都可以,但我想以严格类型、IDE 中的自动完成等结束。

最佳答案

根据angular doc,您可以通过将标志“strictTemplates”和“fullTemplateTypeCheck”设置为true来实现这一点(在这里查看更多信息:https://angular.io/guide/template-typecheck)
我在stackblitz上做了一个repro,遗憾的是我不认为你在stackblitz中看到这样的错误,你可以在本地复制/粘贴这个,看看它是否适合你(https://stackblitz.com/edit/angular-strict-template-example?file=src/app/app.component.html)
请注意,这仅与 Angular 编译相关,我不确定 VS Code 会给您自动完成功能
编辑 :
坏消息我在本地尝试将标志设置为 true 但它不起作用(对我来说,文档令人困惑,因为它说“推断正确类型的组件/指令,包括泛型。”)
@amakhrov 引用了解释此功能尚未准备好的问题
https://github.com/angular/angular/issues/28731

关于angular - TemplateRef 类型检查/声明类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63425337/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com