【发布时间】:2021-09-16 21:56:37
【问题描述】:
我有一个简化的函数,它需要基于枚举的初始值。请参阅下面的简化代码:
items.reduce<Record<RoleType, Community[]>>(
(acc, community) => {
... // this works
},
{ [RoleType.LEADER]: [], [RoleType.FACILITATOR]: [], [RoleType.EDITOR]: [], [RoleType.EXPERT]: [], [RoleType.MEMBER]: [] }
);
枚举看起来像这样:
export enum RoleType {
EXPERT = 'EXPERT',
LEADER = 'LEADER',
FACILITATOR = 'FACILITATOR',
EDITOR = 'EDITOR',
MEMBER = 'MEMBER'
}
我不想明确列出枚举的每个成员。我尝试了以下方法:
{ ...Object.values(RoleType).map((role) => ({ [role]: [] })) }
有没有办法为所有枚举成员简单地添加空数组?最好的情况是如果也有正确的输入。
我上面的尝试抛出了这个错误(我真的不知道该怎么办):
输入 '{ [n: number]: { [x: string]: any[]; };长度:数字; toString(): 字符串; toLocaleString(): 字符串; pop(): { [x: string]: any[]; }; push(...items: { [x: string]: any[]; }[]): number; concat(...items: ConcatArray[]): { ...; }[]; concat(...items: ({ ...; } | ConcatArray<...>)[]): { ...; }[];...' 缺少类型 'Record
' 的以下属性:专家、领导者、引导者、编辑者、成员
【问题讨论】:
标签: javascript arrays typescript enums higher-order-functions