"Type 'null' cannot be used as an index type" TS



当我使用我的"语言;const:";类型"null"不能用作索引类型">

const language =
localStorage.getItem("language") !== null
? localStorage.getItem("language")
: "en"; 

someText = someArray[language];

我该如何修复它?当我防止语言常量为null时,为什么不起作用?(我知道索引选择器必须按字符串/数字(

这里的问题(以及TypeScript无法推断出language的正确类型的原因(是localStorage.getItem("language")被评估了两次,而且据编译器所知,它也可以在第二次调用时返回null

使用??运算符排除languagenull的可能性。

const language = localStorage.getItem("language") ?? "en"; 
someText = someArray[language];

您可以使用Nullish合并运算符(??(稍微调整一下代码,这基本上就是GOTO共享的。只是解释它的名字&工作

let someText = someArray[(localStorage.getItem("language") ?? "en")]

MDN文档中,零合并运算符(??(是一种逻辑运算符,当其左侧操作数为空或未定义时,它返回右侧操作数,否则返回左侧操作数。

相关内容

最新更新