首页 > 解决方案 > 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”。

游乐场链接

标签: typescript

解决方案


推荐阅读