我在Angular 7.x.x和TS中使用3.2.4版本。
我有两个TS接口。一个ist扩展了另一个:
这是主界面:
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个。
我在做什么错了?
提前谢谢!
答案 0 :(得分:2)
尝试将演员表更改为ResultPlus[]
(数组类型)而不是单个实例:
**this.dataArray** = (data as unknown as ResultPlus[]);
即,您已声明dataArray为ResultPlus类型的数组。
如果您要为this.dataArray
的每个项目添加到data
,则需要将其推入-类似于:
this.dataArray.push(data as unknown as ResultPlus);