TypeScrip:类型X缺少类型Y Long、Pop、Push、Concat和其他26种类型的以下属性。[2740][晓雨-0920交稿] [英] Typescript: Type X is missing the following properties from type Y length, pop, push, concat, and 26 more. [2740]

查看:17
本文介绍了TypeScrip:类型X缺少类型Y Long、Pop、Push、Concat和其他26种类型的以下属性。[2740][晓雨-0920交稿]的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有此产品界面:

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’缺少类型的以下属性 ‘Products[]’:长度、弹出、推送、串接和26个以上。[2740]

删除对productsArray变量的键入会删除错误,但不知道这为什么不起作用,因为服务器响应是Products类型的对象数组?

推荐答案

您返回的Observable<Product>预期在subscribe回调内。

http.get()getProducts()返回的类型应为Observable<Product[]>

public getProducts(): Observable<Product[]> {
    return this.http.get<Product[]>(`api/products/v1/`);
}

这篇关于TypeScrip:类型X缺少类型Y Long、Pop、Push、Concat和其他26种类型的以下属性。[2740][晓雨-0920交稿]的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆