import type で取り込んだものは、どう扱われますか。
型の位置でしか使えず、出力される JavaScript からは import 文ごと消えます。ファイル単体で型だけの依存だと分かるので、1ファイルずつ変換するツールでも同じ結果になります。
面接官が見ているのは補強。import type が出力から必ず消えることを知っているか。
これは「Node.js で型を取り除いて直接動かしたら、import { User } from "./types.ts" の行で「User という export が無い」と落ちました。User は interface です。どう直しますか。」への追撃質問です。
よくある答えと、面談でどう見られるか
- 型としてだけ使え、出力の JavaScript からは import ごと消える
その通りです。型だけの依存であることを、ファイル単体で判断できる形で示します。 - 実行時に型の検査に使われる
実行時には残りません。型チェックだけに使われます。 - 遅延して読み込まれる
読み込まれません。出力から消えます。 - 普通の import と同じで、書き方の違いだけ
違います。普通の import は値の import として出力に残ることがあります。
模範解答
import type で取り込んだものは、型の位置でしか使えず、出力される JavaScript からは import 文ごと消えます。
普通の import でも、型にしか使っていなければ tsc は消してくれますが、それには取り込み先のファイルまで見て、型か値かを判断する必要があります。ファイルを1つずつ変換するツールや、Node.js の型の除去にはそれができません。
import type と書けば、そのファイルだけで「型だけの依存」だと分かるので、どのツールでも同じ結果になります。
対象: TypeScript 5.x〜7.0 照合した一次資料: 公式ドキュメント 照合: 2026-10-25 最終更新: 2026-10-25
お使いの版で挙動が違う場合があります。誤りに気づいたらこの解説を報告するから教えてください。