我有这个产品界面:
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] 类型“产品”缺少类型“产品 []”中的以下属性:长度、弹出、推送、连接和 26 多个。 [2740]
删除 productsArray
变量上的输入会删除错误,但不明白为什么这不起作用,因为服务器响应是 Products
类型的对象数组?
原文由 mpro 发布,翻译遵循 CC BY-SA 4.0 许可协议
您正在返回
Observable<Product>
并期望它是Product[]
在subscribe
回调中。从
http.get()
和getProducts()
返回的类型应该是Observable<Product[]>