javascript - 索引表达式不是类型

标签 javascript typescript

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

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

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

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

最佳答案

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

您可以使用增强来添加属性:


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

关于javascript - 索引表达式不是类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57163444/

相关文章:

javascript - 如何在MongoDB中查询具有特定条件的数组

javascript - 值为 &lt;input type ="text"> 的单选按钮

typescript - 为什么 await 不能确保方法中的执行顺序?

debugging - typescript 的编辑器和调试器

typescript - tslint 一行规则错位 'else'

javascript - 定义一个像 jQuery UI 中的 UI 元素

javascript - 为什么我确实需要 angular2 中的 detectorChanges ?

javascript - 如何确保在 Firebase 查询填充数组后调用 setState?

angular - 当输入值不变时如何强制对输入进行变化检测

typescript 类无法访问对象的属性