0

例如,当我们的组件上有 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 示例

IntelliJ 甚至会显示错误:
在此处输入图像描述

我想知道这首先是怎么可能的:即因为Array.isArray(this.anonymousArray)is true,模板如何/为什么甚至看到差异?
这可能是 Ivy 或Angular 语言服务中的错误吗?

4

1 回答 1

1

在最新的 IDEA 版本中对我来说很好:

在此处输入图像描述

编辑:似乎特定于正在使用的库版本,在WEB-49995跟踪

于 2021-03-12T09:35:07.037 回答