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 de type module :
var $protected : tSelectProtected = {};
J'attribue la valeur appropriée dans function1()
l'étendue :
$protected.listEle = document.createElement('DIV');
Plus tard dans function2()
scope, 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-elle ou doit-elle être traitée sans désactiver les contrôles du compilateur TS ?