索引表达式不是

时间:2019-07-23 11:42:28

标签: javascript typescript

我在window['SERVER_DATA']上遇到以下错误

元素隐式地具有“ any”类型,因为索引表达式不是“ number”类型

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

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

1 个答案:

答案 0 :(得分:0)

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