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
お使いの版で挙動が違う場合があります。誤りに気づいたらこの解説を報告するから教えてください。
ここからどう深掘りされるか
この問いに答えられた場合、面談は次の質問に進みます。
観点をすべて押さえられた場合
strictNullChecks を有効にしたら、エラーが数百件出ました。どう片付けますか。一部しか触れられなかった場合
tsconfig の strict は、何をまとめて有効にしますか。触れられなかった場合
tsconfig の strict は、何をまとめて有効にしますか。