typescript - typescript 元素隐式具有“任何”类型,因为 X 类型的表达式不能用于索引 Y 类型
问题描述
对此的任何帮助将不胜感激
interface Error {
messages: string[];
entity: 'test' | null;
}
interface GroupedErrors {
[errorGroup: string]: Error['messages'] | Error[];
}
interface UngroupedErrors {
ungrouped: Error[];
}
type GroupErrors = GroupedErrors | UngroupedErrors | {};
interface Preset {
errors: Error[];
}
export function groupPresetErrors(preset: Preset): GroupErrors {
return preset.errors.reduce<GroupErrors>((acc, error) => {
if (error.entity === 'test') {
return {
...acc,
['test']: acc['test']
? [...acc['test'], ...error.messages]
: error.messages,
};
}
return {
...acc,
['ungrouped']: acc['ungrouped'] ? [...acc['ungrouped'], error] : [error],
};
}, {});
}
元素隐式具有“任何”类型,因为“测试”类型的表达式不能用于索引类型“GroupErrors”。“GroupErrors”类型上不存在属性“test”。