Typescript TS2538错误-从映射访问字符串-未定义不能用作索引类型

时间:2019-05-21 06:56:35

标签: typescript

我定义了一个地图:

const specificTypes = new Map<string, string>();
specificTypes.set("test", "test:corrected");
specificTypes.set("name", "name:corrected");

然后我有一个看起来像这样的对象

const gathered = {
 "name": ["123", "456"],
 "song": ["789", "101"],
}

但是尝试时:

Object.keys(gathered).forEach(existingType => {
   if (specificTypes.has(existingType)) {
      gathered[specificTypes.get(existingType)] = gathered[existingType];
      delete gathered[existingType];
   }
});

我不断收到错误-TS2538 - undefined cannot be used as an index type。具体在gathered[specificTypes.get(existingType)]

请问有人可以解释为什么-我该如何解决?

任何帮助表示赞赏。

谢谢。

更新: 我暂时使用!解决了这个问题: gathered[specificTypes.get(existingType)!] = gathered[existingType]; 但是,不确定这样做是否正确。

0 个答案:

没有答案