gpt4 book ai didi

javascript - 将对象数组分配到基于接口(interface)的数组中

转载 作者:搜寻专家 更新时间:2023-10-30 21:49:32 28 4
gpt4 key购买 nike

我在将对象数组分配给基于接口(interface)的数组时遇到了这个问题

目前我的界面 item.ts 上有这个实现

export interface IItem {
id: number, text: string, members: any
}

在 item.component.ts 上

export class ItemComponent {
selectedItems: IItem[] = [];
items: IExamItems;
getSelected(): void {
this.selectedItems = this.items.examItems.map(examItem=> examItem.item)
}
}

似乎我总是遇到这个错误

TS2322: Type 'IItem[][]' is not assignable to type 'IItem[]'.
Type 'IItem[]' is not assignable to type 'IItem'.
Property 'id' is missing in type 'IItem[]'.

最佳答案

您的分配不起作用,因为如错误所述,该值的类型与该字段不兼容。您不能分配 IItem[][]IItem[] ,因为前者是 IItem数组的数组后者只是一个 IItem 的数组.您需要展平数组或更改 selectedItems 的类型字段到 IItem[][] .如果要展平数组,可以使用 Array.prototype.concat :

const itemArr = this.items.examItems.map(examItem=> examItem.item);
this.selectedItems = Array.prototype.concat.apply([], itemArr);

关于javascript - 将对象数组分配到基于接口(interface)的数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48055137/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com