繁体   English   中英

元素隐式具有“任何”类型,因为“任何”类型的表达式不能用于索引类型

[英]Element implicitly has an 'any' type because expression of type 'any' can't be used to index type

我遇到了许多其他有类似错误的问题,但看不出我的代码有什么问题。 您能确定如何修复ts(7053)错误。

我收到的完整错误是

Element implicitly has an 'any' type because expression of type 'string' can't be used to index type '{ card: number; dialog: number; navigation: number; layer: number; blanket: number; modal: number; flag: number; spotlight: number; tooltip: number; }'.

代码是

const zIndexToName: Record<number, string> = Object.keys(layerIndex).reduce(
  (acc: Record<number, string>, name: string) => {
    const value: number = layerIndex[name]();
    acc[value] = name;
    return acc;
  },
  {}
);

layerIndex

export const layerIndex = {
  card: 100,
  dialog: 300,
  navigation: 200,
  layer: 400,
  blanket: 500,
  modal: 510,
  flag: 600,
  spotlight: 700,
  tooltip: 800
};

我可以将所有string切换为any但得到相同的错误, Element implicitly has an 'any' type because expression of type 'any' can't be used to index type

const zIndexToName: Record<number, any> = Object.keys(layerIndex).reduce(
  (acc: Record<number, any>, name: any) => {
    const value: number = layerIndex[name]();
    acc[value] = name;
    return acc;
  },
  {}
);

您缺少layerIndex的索引类型。

export const layerIndex: { [key: string]: number }

我想 function 呼叫号码是一个错误。 它应该是

 const value: number = layerIndex[name];

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM