gpt4 book ai didi

arrays - Array.Reduce 类型错误

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

我似乎无法弄清楚为什么在尝试进行某些对象转换时出现错误。

我想要做的是获取一组项目并使用 Array.Reduce 方法创建一个基于项目内字段的新对象。之后,我使用 Object.entries.map 方法创建一个新数组,以便稍后迭代对象。代码如下。

export interface IMenuItem {
id: string;
name: string;
description: string;
category: string;
imageUrl: string;
quantity: number;
}

function toItemGroups(items: IMenuItem[]): [{ items: {}; label: string }] {
const groups: {} = items.reduce((result, item) => {
const group: [{}] = result[item.category] || [];
result[item.category] = group.concat(item);
return result;
}, {});

return Object.entries(groups).map(([label, items]) => ({ items, label }));
}

我得到的错误是:

type { items: IMenuItem[]; label: string }[] is not assignable to type [{ items: {}; label: string }].

这是不言自明的,但我似乎无法弄清楚我需要什么类型才能正确映射它。

如有任何建议,我们将不胜感激。

最佳答案

它告诉你想要它所期望的类型,所以只需在你的函数声明中使用它:

function toItemGroups(items: IMenuItem[]): { items: IMenuItem[]; label: string }[] {

请注意,您希望类型末尾的 [] 表示数组。

[{ 项目:IMenuItem[]; label: string }] 表示元组(或长度为 1 的数组)

关于arrays - Array.Reduce 类型错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50607730/

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