Javascript 元素隐式地具有一个';任何';类型,因为表达式的类型为';任何';can';不能用于索引类型

Javascript 元素隐式地具有一个';任何';类型,因为表达式的类型为';任何';can';不能用于索引类型,javascript,reactjs,typescript,Javascript,Reactjs,Typescript,我已经通过了许多其他问题,有类似的错误,但没有看到我的代码有什么问题。您能否确定如何修复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;

我已经通过了许多其他问题,有类似的错误,但没有看到我的代码有什么问题。您能否确定如何修复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;
  },
  {}
);
我可以将所有
string
切换到
any
,但得到相同的错误,of
元素隐式具有“any”类型,因为类型“any”的表达式不能用于索引类型

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;
  },
  {}
);
const zIndexToName:Record=Object.keys(layerIndex).reduce(
(acc:记录,名称:任何)=>{
常量值:number=layerIndex[name]();
acc[值]=名称;
返回acc;
},
{}
);

您缺少
layerIndex
的索引类型

export const layerIndex: { [key: string]: number }
我想对这个号码的函数调用是个错误。应该是

 const value: number = layerIndex[name];
 const value: number = layerIndex[name];