【发布时间】:2019-06-25 19:37:42
【问题描述】:
我有这个产品界面:
export interface Product{
code: string;
description: string;
type: string;
}
带有方法调用产品端点的服务:
public getProducts(): Observable<Product> {
return this.http.get<Product>(`api/products/v1/`);
}
以及我使用此服务获取产品的组件。
export class ShopComponent implements OnInit {
public productsArray: Product[];
ngOnInit() {
this.productService.getProducts().subscribe(res => {
this.productsArray = res;
});
}
}
在这种状态下,我遇到了错误:
[ts] 类型“产品”缺少类型中的以下属性 'Product[]':长度、pop、push、concat 等 26 种。 [2740]
删除productsArray 变量上的输入会消除错误,但不明白为什么这不起作用,因为服务器响应是Products 类型的对象数组?
【问题讨论】:
-
getProducts()被定义为为单个Observable返回一个Product,但您将观察到的结果分配给一个Product[]数组。 -
小修正。将类型改为数组
return this.http.get<Product[]>(api/products/v1/);
标签: angular typescript typescript-typings