tsconfig.json の "strict": true は、より厳格な一連のチェックを一度にオンにします。これはすべての新規プロジェクトで強く推奨されており、TypeScript が防ぐために存在するバグを検出します。
json
{ "compilerOptions":
// strictNullChecks — null/undefined are no longer assignable to everything
let name: string = null; // ❌ Error (without strict this compiles, then crashes)
function f(u?: User) { u.name; } // ❌ u is possibly undefined → forces a check
// noImplicitAny — parameters with no inferable type must be annotated
function g(x) {} // ❌ Error: 'x' implicitly has type 'any'
// strictPropertyInitialization — class fields must be initialized
class C { name: string; } // ❌ must init in constructor or mark optional
strictNullChecks は最も重要なものです。これは null/undefined を他の型から分離するため、コンパイラはあらゆる場所で「値が存在しないかもしれない」状況を処理することを強制します。これにより、実行時エラーの第1位である「undefined のプロパティを読み取れない」を排除できます。
大規模なレガシープロジェクトですべてを一度に有効にするのではなく、フラグを段階的にオンにし(strictNullChecks を最初に)、ファイルごとにエラーを修正していきましょう。
strict モードがなければ、TypeScript は本来防ぐべき安全でないパターン(暗黙の any、チェックされない null)の多くを依然として許容してしまいます。
strict モードこそ、TypeScript が最も価値を発揮する場所です。これをデフォルトとして扱い、正当な理由がある場合のみ個別のフラグを緩和しましょう。
ジュニアからシニアまで、詳細な回答付きのIT面接質問ライブラリ。
寄付する