У меня есть type
:
type tSelectProtected = {
handleSelector?: string,
data?: tSelectDataItem[],
wrapperEle?: HTMLElement,
inputEle?: HTMLElement,
listEle?: HTMLElement,
resultEle?: HTMLElement,
maxVisibleListItems?: number
}
Я объявляю глобальную модульную переменную:
var $protected : tSelectProtected = {};
Я назначаю правильное значение в области видимости function1()
:
$protected.listEle = document.createElement('DIV');
Позже в области видимости function2()
я звоню:
$protected.listEle.classList.add('visible');
Я получаю ошибку TypeScript:
error TS2533: Object is possibly 'null' or 'undefined'
Я знаю, что могу сделать явную проверку, используя if ($protected.listEle) {$protected.listEle}
, чтобы успокоить компилятор, но это кажется очень неудобным для большинства нетривиальных случаев.
Как эта ситуация может или должна быть обработана без отключения проверок компилятора TS?