我声明了一个类型化变量,该变量应该保存服务获取的数据。然而,返回的数据与变量的类型不同,但变量仍然接受数据。
这是我的代码:
Data: Array<{Currency: string, Rate: number}>;
getData(): void {
this.DataService.getAll().subscribe(
(res: Array<any>) => {
this.Data = res;
},
(err) => {
console.log(err);
}
);
}
我尝试了以下方法,但仍然不起作用:
res: Array<{Currency: string, Rate: number}>
更新
这是我的服务
getAll(): Observable<Array<{Currency: string, Rate: number}>> {
return this.http.get(`${this.baseUrl}/data`).pipe(
map((res) => {
this.data = res['data'];
return this.data;
}),
catchError(this.handleError));
}
更新2
我在这里发现了类似的问题:https://github.com/angular/angular/issues/20770
最佳答案
您可以创建一个模型:
export interface CurrencyModel {
Currency: string,
Rate: number
}
然后使用此模型作为响应:
Data: CurrencyModel[];
getData(): void {
this.DataService.getAll().subscribe(
(res: CurrencyModel[]) => {
this.Data = res;
},
(err) => {
console.log(err);
}
);
}
getAll
应该返回Observable<CurrencyModel[]>
关于javascript - 为什么 typescript 忽略变量类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57372106/