TypeScriptのstrictモードで安全なコードを書く

このプロジェクトではTypeScriptのstrictモードを有効にしています。strictモードは複数のコンパイラオプションをまとめて有効にするフラグです。

strictモードで有効になるオプション

  • strictNullChecks: nullとundefinedの型チェックを厳格化
  • noImplicitAny: 暗黙的なany型を禁止
  • strictFunctionTypes: 関数の型チェックを厳格化
  • strictPropertyInitialization: クラスプロパティの初期化チェック

実践的な例

// strictNullChecksなし(危険)
function getLength(str: string | null) {
  return str.length; // nullの場合ランタイムエラー
}

// strictNullChecksあり(安全)
function getLength(str: string | null) {
  return str?.length ?? 0; // nullを安全に処理
}

strictモードを最初から有効にしておくことで、後からの移行コストを避けられます。