IT-Q

tsconfig.json に strict を書いていないプロジェクトでは、strict は有効ですか。

TypeScript 6.0 以降は既定で有効です。5.x までは書かなければ無効でした。以前の挙動に頼っていたなら "strict": false を明示します。7.0 も 6.0 の挙動を引き継いでいます。

面接官が見ているのは🔴 6.0 で変わった既定値。古い前提のままだと設定を読み違える。

よくある答えと、面談でどう見られるか

  • TypeScript 6.0 以降なら有効。それより前の版なら無効
    6.0 で既定値が true になりました。版によって答えが逆になるところです。
  • 無効。strict は書かないと有効にならない
    5.x まではその通りでした。6.0 で既定が有効に変わったので、版を確かめる必要があります。
  • 有効。TypeScript は最初から strict が既定
    5.x までは無効が既定でした。古いプロジェクトでは書いていないなら無効です。
  • strict は 7.0 で廃止された
    廃止されていません。6.0 で既定が有効になり、7.0 もそれを引き継いでいます。

模範解答

版によります。TypeScript 6.0 で strict の既定値が true に変わりました。5.x までは、書かなければ無効でした。

公式のリリースノートは、以前の既定(false)に頼っていたならtsconfig.json に "strict": false と明示するよう案内しています。7.0 は 6.0 の挙動を引き継いでいます。

strict はまとめスイッチで、noImplicitAny(暗黙の any を禁止)やstrictNullChecks(null と undefined を別の型として扱う)などをまとめて有効にします。参画したプロジェクトでは、まず TypeScript の版と tsconfig.json を見て、どの検査が効いているかを確かめます。

対象: TypeScript 5.x〜7.0 照合した一次資料: 公式ドキュメント 照合: 2026-10-25 最終更新: 2026-10-25
お使いの版で挙動が違う場合があります。誤りに気づいたらこの解説を報告するから教えてください。