Ich habe eine type:
type tSelectProtected = {
handleSelector?: string,
data?: tSelectDataItem[],
wrapperEle?: HTMLElement,
inputEle?: HTMLElement,
listEle?: HTMLElement,
resultEle?: HTMLElement,
maxVisibleListItems?: number
}
Ich deklariere eine globale modulweise Variable:
var $protected : tSelectProtected = {};
Ich weise im function1()Bereich den richtigen Wert zu :
$protected.listEle = document.createElement('DIV');
Später function2()rufe ich an:
$protected.listEle.classList.add('visible');
Ich erhalte einen TypeScript-Fehler:
error TS2533: Object is possibly 'null' or 'undefined'
Ich weiß, dass ich explizite Überprüfungen durchführen kann if ($protected.listEle) {$protected.listEle}, um den Compiler zu beruhigen, aber dies scheint für die meisten nicht trivialen Fälle sehr unhandlich zu sein.
Wie kann oder sollte mit dieser Situation umgegangen werden, ohne die TS-Compilerprüfungen zu deaktivieren?

nulls in "Vanilla" JavaScript, um Variablen oder Eigenschaftswerte zu initialisieren. Dies gibt mir eine klare Antwort, wenn var oder prop vorhanden ist, aber "noch kein verwendbarer Wert" vorliegt oder "der Wert zu einem bestimmten Zeitpunkt der Ausführung gelöscht wurde". Es ist nur durch Konvention. Dies ist möglicherweise nicht der beste Ansatz in TypeScript, wie ich anhand der Antworten hier sehen kann. Danke für deine Gedanken.