Tengo un type:
type tSelectProtected = {
handleSelector?: string,
data?: tSelectDataItem[],
wrapperEle?: HTMLElement,
inputEle?: HTMLElement,
listEle?: HTMLElement,
resultEle?: HTMLElement,
maxVisibleListItems?: number
}
Declaro una variable global en cuanto a módulos:
var $protected : tSelectProtected = {};
Estoy asignando el valor adecuado en el function1()alcance:
$protected.listEle = document.createElement('DIV');
Más adelante en el function2()alcance, estoy llamando:
$protected.listEle.classList.add('visible');
Recibo un error de TypeScript:
error TS2533: Object is possibly 'null' or 'undefined'
Sé que puedo hacer una verificación explícita usando if ($protected.listEle) {$protected.listEle}para calmar el compilador, pero esto parece ser muy desagradable para la mayoría de los casos no triviales.
¿Cómo puede o debe manejarse esta situación sin deshabilitar las comprobaciones del compilador de TS?

nulls en JavaScript "vainilla" para inicializar variables o valores de propiedades. Esto me da una respuesta directa si existe var o prop dado, pero todavía no tiene "ningún valor utilizable" o "el valor se borró en algún momento de la ejecución". Es solo por convención. Este puede no ser el mejor enfoque en TypeScript, como puedo ver en las respuestas aquí. Gracias por tus pensamientos.