我在将一个对象数组分配给基于接口的数组
时遇到了这个问题目前我在我的界面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[]'.
答案 0 :(得分:1)
您的作业无法正常工作,因为在错误状态下,该值与字段的类型不兼容。您无法将IItem[][]
分配给IItem[]
,因为前者是 IItem
的数组,而后者只是IItem
的数组1}}。您需要展平数组或将selectedItems
字段的类型更改为IItem[][]
。如果要展平数组,可以使用Array.prototype.concat
:
const itemArr = this.items.examItems.map(examItem=> examItem.item);
this.selectedItems = Array.prototype.concat.apply([], itemArr);