IT-Q

tsconfig の strict は、何をまとめて有効にしますか。

noImplicitAny、strictNullChecks、strictFunctionTypes、useUnknownInCatchVariables などをまとめて有効にします。noUncheckedIndexedAccess のように strict に含まれない検査もあります。

面接官が見ているのは補強。strict の中身を知っているか。

これは「strict が無効のまま育ったプロジェクトで、strict を有効にしたい。どう進めますか。」への追撃質問です。

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

  • noImplicitAny や strictNullChecks など、型の検査を厳しくする複数の設定
    その通りです。まとめスイッチなので、個別に有効・無効を切り替えられます。
  • 実行時に型を確かめる設定
    実行時には何もしません。コンパイル時の検査を厳しくするものです。
  • JavaScript の "use strict" を付ける設定だけ
    それ(alwaysStrict)も含まれますが、一部にすぎません。中心は型の検査です。
  • すべての検査を有効にする。noUncheckedIndexedAccess も含む
    多くを含みますが、noUncheckedIndexedAccess は含まれません。別に有効にする必要があります。

模範解答

型の検査を厳しくする複数の設定をまとめて有効にします。noImplicitAny、strictNullChecks、strictFunctionTypes、strictBindCallApply、strictPropertyInitialization、noImplicitThis、useUnknownInCatchVariables、alwaysStrict などです。

まとめスイッチなので、strict を有効にしたうえで一部だけ無効にすることも、strict を使わずに一部だけ有効にすることもできます。

noUncheckedIndexedAccess のように、strict に含まれない検査もあります。また TypeScript 6.0 からは、strict を書かなければ有効、が既定です。

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