const id = myMap.has(key) ? myMap.get(key) : "defaultValue"
if (id.includes("stuff")) { // Compiler complains saying "Object is possibly undefined"
我不明白這個物件怎么可能是未定義的。如果它有鍵,它就會得到值。如果不是,則結果為“defaultValue”。它應該涵蓋所有情況,為什么會抱怨?
uj5u.com熱心網友回復:
它應該涵蓋所有情況
它沒有:
const myMap = new Map<string, any>();
myMap.set("stuff", undefined);
const id = myMap.has(key) ? myMap.get(key) : "defaultValue";
id.includes("default"); // BOOM!
請注意,如果我們避免any. 您總是可以在運行時使用未知的字串鍵呼叫它,編譯器知道它并且無法驗證訪問是否始終有效。
uj5u.com熱心網友回復:
如果“myMap”為空或未定義,則 id 也將是未定義/空。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/445924.html
標籤:打字稿
