IT-Q

strict が無効のまま育ったプロジェクトで、strict を有効にしたい。どう進めますか。

strict はまとめスイッチなので、個別の設定を一つずつ有効にします。noImplicitAny から始め、件数の多い strictNullChecks はディレクトリ単位で区切ります。6.0 から strict は既定で有効です。

面接官が見ているのはstrict が複数の検査のまとめであることを使い、段階的に進められるか。

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

  • strict に含まれる個別の検査を一つずつ有効にして、少しずつ直す
    その通りです。strict はまとめスイッチなので、中身を個別に有効にできます。
  • strict を有効にして、出たエラーを全部直してからマージする
    小さいプロジェクトなら可能ですが、大きいと何百件も出て止まります。分けて進めます。
  • strict を有効にして、出たエラーにすべて @ts-ignore を付ける
    有効にした意味がなくなります。しかも将来のエラーまで黙らせます。
  • strict は新規プロジェクト向けなので、既存のものには入れない
    既存のものにも入れられます。むしろ育ったプロジェクトほど効果が大きいです。

模範解答

strict はまとめスイッチで、noImplicitAny、strictNullChecks、strictFunctionTypes、useUnknownInCatchVariables などを一度に有効にします。個別に有効にもできるので、一つずつ進めます。

順番としては、noImplicitAny(暗黙の any をなくす)から始め、件数が多くなりやすい strictNullChecks は、ディレクトリ単位などで区切って進めることが多いです。

注意点として、TypeScript 6.0 からは strict の既定が有効になっています。tsconfig に strict を書いていない古いプロジェクトを 6.0 に上げると、それだけで一斉にエラーが出ます。その場合はいったん "strict": false を明示して、同じ手順で一つずつ有効にしていきます。

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

ここからどう深掘りされるか

この問いに答えられた場合、面談は次の質問に進みます。