首页 > 解决方案 > 在 Angular 服务中获取数据的函数中出现 TS2739 错误

问题描述

我创建了这个函数来从我的虚拟数据中获取对象并将其设置为一个变量。

setData(key: string) {
    let dataChunk: ProductIndex = PRODUCTDATA.filter(a=>{a.productId == key;});
    this.ProductData = dataChunk;
}

我在第 15,13 行收到 TS2739 错误,这正是dataChunk开始说明类型中的每个属性都从ProductIndex类型中丢失ProductIndex[]PRODUCTDATA.

我的数据是这样保存的

export const PRODUCTDATA: ProductIndex[] = [
    {
        productId: 'divider_01',
        title: 'Divider 01',
        description: 'A brief description for Divider 01',
        sizes: [...],
        instructionKey: 'divider_01_instruction_key'
    },
    {...},
    {...}
]

ProductIndex界面看起来像这样

export interface ProductIdCore           { productId   : string; }    
export interface TitleCore               { title       : string; }
export interface ShortDescriptionCore    { description : string; }

export interface ProductIndex extends ProductIdCore, TitleCore, ShortDescriptionCore{
    sizes: ProductIndexItem[];
    instructionKey: string;
}

我正在使用带有 TypeScript 3.4.0 的 Angular 8。我不明白我在这里做错了什么,有人可以帮忙吗?

标签: angulartypescript

解决方案


尝试这个;

setData(key: string){
    let dataChunk: ProductIndex = PRODUCTDATA.filter(a=>a.productId == key);
    this.ProductData = dataChunk;
}

你有{a.productId == key;}哪个是错的。

如果要使用花括号,请执行以下操作:

....PRODUCTDATA.filter(a=>{ return a.productId == key;});

推荐阅读