Eu tenho um type:
type tSelectProtected = {
handleSelector?: string,
data?: tSelectDataItem[],
wrapperEle?: HTMLElement,
inputEle?: HTMLElement,
listEle?: HTMLElement,
resultEle?: HTMLElement,
maxVisibleListItems?: number
}
Declaro uma variável global em módulo:
var $protected : tSelectProtected = {};
Estou atribuindo valor adequado no function1()escopo:
$protected.listEle = document.createElement('DIV');
Mais tarde no function2()escopo, estou chamando:
$protected.listEle.classList.add('visible');
Estou recebendo erro do TypeScript:
error TS2533: Object is possibly 'null' or 'undefined'
Eu sei que posso fazer uma verificação explícita usando if ($protected.listEle) {$protected.listEle}para acalmar o compilador, mas isso parece ser pouco prático para a maioria dos casos não triviais.
Como essa situação pode ou deve ser tratada sem desativar as verificações do compilador TS?

nulls no JavaScript "vanilla" para inicializar valores de variáveis ou propriedades. Isso me dá uma resposta direta, se existe dado var ou prop, mas ainda não há "valor utilizável" ou "o valor foi limpo em algum momento da execução". É apenas por convenção. Essa pode não ser a melhor abordagem no TypeScript, como posso ver pelas respostas aqui. Obrigado por seus pensamentos.