P粉1945410722023-08-25 11:31:36
これは意図的な動作です。 TypeScript GitHub リポジトリでこの問題に関する長い議論をご覧ください
strictNullChecks
がオフになっています。オンにしてみてください。
P粉3302320962023-08-25 11:19:47
TypeScript 4.1 では、このケースの未定義
を考慮して、microsoft/TypeScript#13778 での提案を実装する --noUncheckedIndexedAccess
コンパイラ フラグが導入されました。この機能は、--strict
コンパイル オプション セットの一部として有効化されておらず、プログラマが # に関する警告を望まない、または予期しない状況を生成するため、「厳密なインデックス シグネチャ」と呼ばれます。 ##未定義###。
が追加されないことがわかりました。これを実現するコンパイラ オプションを作成するという提案は、microsoft/TypeScript#13778
で行われました。その提案のコメントを読むと、他の質問にリンクしていますが、エラー率が高いためほとんど役に立たないというのがコンセンサスです。
は、要素タイプに
を手動で追加できることにも言及しました:
リーリー
これは、言語全体に影響を与えることなく、期待どおりに機能します。