IT-Q

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