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
お使いの版で挙動が違う場合があります。誤りに気づいたらこの解説を報告するから教えてください。