當我使用我的“語言”const 時,我在 Typescript 代碼中收到一個錯誤:“型別‘空’不能用作索引型別。”
const language =
localStorage.getItem("language") !== null
? localStorage.getItem("language")
: "en";
someText = someArray[language];
當我阻止語言 const 為空時,我該如何修復它,為什么不起作用?(我知道索引選擇器必須按字串/數字)
uj5u.com熱心網友回復:
這里的問題(以及 TypeScript 無法推斷出正確型別的原因language)是它localStorage.getItem("language")被評估了兩次,而且它也可能 - 編譯器知道 -null在第二次呼叫時回傳。
使用??運營商排除的可能性language是null。
const language = localStorage.getItem("language") ?? "en";
someText = someArray[language];
uj5u.com熱心網友回復:
您可以使用 Nullish Coalescing 運算子 (??) 稍微調整您的代碼,這基本上是 GOTO 共享的內容。只是解釋它的名稱和作業。
let someText = someArray[(localStorage.getItem("language") ?? "en")]
從MDN檔案來看,空合并運算子 (??) 是一個邏輯運算子,當其左側運算元為空或未定義時回傳其右側運算元,否則回傳其左側運算元。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/369787.html
上一篇:切換問題。一些陣列沒有切換
