使用泛型变量时,使用 fullTemplateTypeCheck 在模板中产生错误

问题描述

我在角度组件的模板中有以下行

<tr dt-row-placeholder [contents]="dtElements" [context]="datum" *ngFor="let datum of model.Collection"></tr>

当我将鼠标悬停在 VS 代码中的变量上时,我看到

enter image description here

enter image description here

但是,我在构建时遇到以下错误

Error: src/sp-data-table/data-table-body/data-table-body.component.html:27:55 - error TS2322: Type 'any' is not assignable to type 'never'.
    
    27       <tr dt-row-placeholder [contents]="dtElements" [context]="datum" *ngFor="let datum of model.Collection"></tr>

enter image description here

我想知道在启用 fullTemplateTypeCheck 的同时我是否可以做些什么来解决这个问题。将 fullTemplateTypeCheck 设置为 false 可以解决问题,但意味着我会失去它在应用其他部分提供的好处。

我的预感是,尽管“context”和“datum”在悬停中显示为“T”类型,但打字稿无法知道“DataTableRowPlaceholderComponent”的 T 与“datum”相同,后者是一个在包含组件的属性上定义的 T[] 的元素。我想我的问题是,有什么方法可以让我告诉 angular 两个“T”指的是同一种类型?令我感到奇怪的是,当智能悬停不知何故知道它们不是那些类型时,该错误似乎表明“上下文”的类型为“从不”,而“数据”的类型为“任何”。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...