Mam type:
type tSelectProtected = {
handleSelector?: string,
data?: tSelectDataItem[],
wrapperEle?: HTMLElement,
inputEle?: HTMLElement,
listEle?: HTMLElement,
resultEle?: HTMLElement,
maxVisibleListItems?: number
}
Deklaruję globalną zmienną modułową:
var $protected : tSelectProtected = {};
Przypisuję odpowiednią wartość w function1()zakresie:
$protected.listEle = document.createElement('DIV');
Później function2()wzywam:
$protected.listEle.classList.add('visible');
Otrzymuję błąd TypeScript:
error TS2533: Object is possibly 'null' or 'undefined'
Wiem, że mogę wykonać jawne sprawdzenie, if ($protected.listEle) {$protected.listEle}aby uspokoić kompilator, ale wydaje się to bardzo nieprzydatne w większości nie trywialnych przypadkach.
Jak tę sytuację można lub należy rozwiązać bez wyłączania sprawdzania kompilatora TS?

nullsw JavaScript w „waniliowym” do inicjowania wartości zmiennych lub właściwości. To daje mi prostą odpowiedź, jeśli podany var lub prop istnieje, ale nie ma on jeszcze „wartości użytecznej” lub „wartość została wyczyszczona w pewnym momencie wykonania”. To tylko konwencja. To może nie być najlepsze podejście w TypeScript, co widzę w odpowiedziach tutaj. Dziękuję za twoje przemyślenia.