我有一個類型:如何禁止TypeScript「錯誤TS2533:對象可能是'null'或'undefined'」?
type tSelectProtected = {
handleSelector?: string,
data?: tSelectDataItem[],
wrapperEle?: HTMLElement,
inputEle?: HTMLElement,
listEle?: HTMLElement,
resultEle?: HTMLElement,
maxVisibleListItems?: number
}
我宣佈一個全球性的 - 模塊明智 - 變量:
var $protected : tSelectProtected = {};
我指定的功能1範圍適當的值:
$protected.listEle = document.createElement('DIV');
我m函數,稍後在函數2範圍內:
$protected.listEle.classList.add('visible');
我得到打字稿錯誤:
error TS2533: Object is possibly 'null' or 'undefined'
我知道我可以使用if ($protected.listEle) {$protected.listEle}
冷靜下來編譯器做明確的檢查,但這似乎是最不平凡的情況非常不方便。
如何在不禁用TS編譯器檢查的情況下處理這種情況?
我個人使用「vanilla」JavaScript中的'null'來初始化變量或屬性值。這給了我直接的答案,如果給定var或prop存在,但它「沒有可用值」或「在某個執行點清除了值」。這只是慣例。這可能不是TypeScript中的最佳方法,正如我在這裏可以看到的答案。謝謝你的想法。 – grasnal