我在版本 3.2.4 中使用 Angular 7.x.x 和 TS。
我有两个 TS 接口(interface)。一个是扩展另一个:
这是主界面:
export interface Result {
var1: string;
var2: number;
var3: boolean;
}
第二个只是添加一个属性:
export interface ResultPlus extends Result {
var4: boolean;
}
现在我有一个服务返回 Observable<Result[]>.
在我的组件中,我订阅了这项服务:
dataArray: ResultPlus[] = [];
getResults(): void {
this.service.getResults()
.subscribe(data => {
**this.dataArray** = (data as unknown as ResultPlus);
});
}
(代码中没有*)
现在 this.dataArray(上面的粗体 - **)带有红色下划线,上面写着:
错误 TS2740:类型“ResultPlus”缺少类型“ResultPlus[]”中的以下属性:长度、弹出、插入、连接和另外 26 个。
我做错了什么?
提前致谢!
最佳答案
尝试将您的转换更改为 ResultPlus[]
(数组类型)而不是单个实例:
**this.dataArray** = (data as unknown as ResultPlus[]);
即,您已将 dataArray 声明为 ResultPlus 类型的数组。
如果您尝试为每个项目 data
添加到 this.dataArray
,那么您需要推送到它 - 类似于:
this.dataArray.push(data as unknown as ResultPlus);
关于angular - TS 类型缺少以下属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54398775/