J'ai un type:
type tSelectProtected = {
handleSelector?: string,
data?: tSelectDataItem[],
wrapperEle?: HTMLElement,
inputEle?: HTMLElement,
listEle?: HTMLElement,
resultEle?: HTMLElement,
maxVisibleListItems?: number
}
Je déclare une variable globale par module:
var $protected : tSelectProtected = {};
J'attribue une valeur appropriée dans la function1()portée:
$protected.listEle = document.createElement('DIV');
Plus tard dans la function2()portée, j'appelle:
$protected.listEle.classList.add('visible');
Je reçois une erreur TypeScript:
error TS2533: Object is possibly 'null' or 'undefined'
Je sais que je peux faire une vérification explicite en utilisant if ($protected.listEle) {$protected.listEle}pour calmer le compilateur mais cela semble être très peu pratique pour la plupart des cas non triviaux.
Comment cette situation peut ou doit être gérée sans désactiver les vérifications du compilateur TS?

nulls en JavaScript "vanille" pour initialiser les valeurs des variables ou des propriétés. Cela me donne une réponse directe si var ou prop donné existe mais qu'il n'a "pas encore de valeur utilisable" ou "la valeur a été effacée à un certain point d'exécution". C'est juste par convention. Ce n'est peut-être pas une meilleure approche dans TypeScript comme je peux le voir par les réponses ici. Merci pour vos pensées.