首页 > 解决方案 > 索引表达式不是类型

问题描述

我收到以下错误window['SERVER_DATA']

元素隐式具有“任何”类型,因为索引表达式不是“数字”类型

const initialState = Object.assign(window['SERVER_DATA'] || {}, {
  auth: authState
});

有人知道如何解决这个问题吗?

标签: javascripttypescript

解决方案


window没有一个名为SERVER_DATA你不能使用字符串'SERVER_DATA'来索引的属性windowwindow确实有一个数字索引,因此错误)。

您可以使用扩充添加属性:


declare global { // this line is necessary only if you are a module
    interface Window {
        SERVER_DATA: unknown 
    }
}

或者您可以window使用字符串转换为可索引的内容:(window as Record<string, unknown>)['SERVER_DATA'] || {}

您可以使用更具体的类型而不是unknown


推荐阅读