例如,当我们的组件上有 2 个数组属性时:
array
: 一个普通的Array
anonymousArray
的一个子类Array
export class AppComponent {
readonly array = new Array<{
text: string;
value: string;
}>();
readonly anonymousArray = new class extends Array<{
text: string;
value: string;
}> {
add(text: string, value: string) {
this.push({
text,
value
});
}
}();
constructor() {
this.array.push({
text: "text1",
value: "value1"
});
this.anonymousArray.add("text", "value");
}
}
然后模板中的代码完成适用于普通 Array:
但不适用于子类:
这是一个完整的Stackblitz 示例
我想知道这首先是怎么可能的:即因为Array.isArray(this.anonymousArray)
is true
,模板如何/为什么甚至看到差异?
这可能是 Ivy 或Angular 语言服务中的错误吗?