私は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、「バニラ」JavaScriptでs を使用して、変数またはプロパティ値を初期化しています。これは、与えられたvarまたはpropが存在するが、「まだ使用可能な値がない」または「実行のある時点で値がクリアされた」場合、私に直接的な答えを与えます。慣例によるものです。TypeScriptでは、ここでの回答からわかるように、これは最善のアプローチではない可能性があります。どうもありがとうございました。