TypeScript で import を書いたとき、それを実際に解決するのは誰ですか。
型の解決は TypeScript が、実行時の解決は Node.js やバンドラが行います。tsconfig は実行環境からは読まれないので、片方の設定だけを直すと、片方だけで通る状態になります。
面接官が見ているのは補強。型の解決と実行時の解決が別だと分かっているか。
これは「tsconfig の paths で @/ を src に割り当てたら、型チェックは通るのに、tsc で出力した JavaScript を実行すると import が見つからず落ちました。なぜですか。」への追撃質問です。
よくある答えと、面談でどう見られるか
- 型の解決は TypeScript、実行時の解決は Node.js やバンドラ。両者の設定がずれると片方だけ通る
その通りです。TypeScript の設定は、実行時の解決を変えません。 - TypeScript がすべて解決して、出力の import を書き換える
TypeScript は import の書き方を変えません。解決するのは実行環境です。 - ブラウザや Node.js は tsconfig を読んで解決する
tsconfig を読むのは TypeScript だけです。 - npm が解決する
npm はパッケージを入れるだけで、import の解決は実行時に行われます。
模範解答
型の解決は TypeScript が、実行時の解決は Node.js やバンドラが行います。TypeScript の tsconfig は、実行環境からは読まれません。
そのため、tsconfig の paths や moduleResolution だけを直しても、実行時の解決は変わりません。片方だけで通る状態が一番見落としやすいので、設定を変えたら、型チェックと実際の実行の両方で確かめます。
対象: TypeScript 5.x〜7.0 照合した一次資料: 公式ドキュメント 照合: 2026-10-25 最終更新: 2026-10-25
お使いの版で挙動が違う場合があります。誤りに気づいたらこの解説を報告するから教えてください。