나는 type:
type tSelectProtected = {
handleSelector?: string,
data?: tSelectDataItem[],
wrapperEle?: HTMLElement,
inputEle?: HTMLElement,
listEle?: HTMLElement,
resultEle?: HTMLElement,
maxVisibleListItems?: number
}
전역 모듈 단위 변수를 선언합니다.
var $protected : tSelectProtected = {};
function1()범위 에서 적절한 가치를 부여하고 있습니다 .
$protected.listEle = document.createElement('DIV');
나중에 function2()범위 내에서 전화합니다.
$protected.listEle.classList.add('visible');
TypeScript 오류가 발생합니다.
error TS2533: Object is possibly 'null' or 'undefined'
if ($protected.listEle) {$protected.listEle}컴파일러를 진정시키기 위해 명시 적으로 검사를 수행 할 수 있지만 대부분의 사소한 경우에는 매우 적합하지 않은 것 같습니다.
TS 컴파일러 검사를 비활성화하지 않고 어떻게이 상황을 처리 할 수 있습니까?

null으로 "vanilla"JavaScript에서 s를 사용 하여 변수 또는 속성 값을 초기화합니다. 주어진 var 또는 prop이 존재하지만 "사용 가능한 값이 없음"이 있거나 "일부 실행 지점에서 값이 지워진 경우"에 대한 답을 얻을 수 있습니다. 그것은 단지 관습에 의한 것입니다. 여기에서 답변으로 볼 수 있듯이 TypeScript에서 가장 좋은 방법은 아닙니다. 당신의 생각에 감사합니다.