TypeScript 6.0 に上げたら、baseUrl が非推奨だと警告されました。paths は baseUrl を前提に書かれています。どう直しますか。
baseUrl を消し、paths の各値の先頭に baseUrl の分の場所を書き足します。"app/*" は "./src/app/*" になります。baseUrl は 6.0 で非推奨になり、7.0 では使えません。
面接官が見ているのは🔴 6.0 の baseUrl の非推奨と、その移行方法を知っているか。
これは「tsconfig の paths で @/ を src に割り当てたら、型チェックは通るのに、tsc で出力した JavaScript を実行すると import が見つからず落ちました。なぜですか。」への追撃質問です。
よくある答えと、面談でどう見られるか
- baseUrl を消し、paths の各値の先頭に baseUrl の分の場所を書き足す(./src/app/* のように)
その通りです。公式のリリースノートが案内している直し方そのものです。 - baseUrl を消すだけ
paths の値が baseUrl 基準の相対で書かれていたなら、場所がずれて解決できなくなります。値も直します。 - paths も一緒に使えなくなったので、相対パスに書き換える
paths は使えます。非推奨になったのは baseUrl だけです。 - 警告なので放っておく
6.0 では動きますが、7.0 では baseUrl が使えなくなります。
模範解答
baseUrl を消し、paths の各値に、これまで baseUrl が担っていた場所を書き足します。
"baseUrl": "./src",
"paths": { "@app/*": ["app/*"] }は、次のように直します。
"paths": { "@app/*": ["./src/app/*"] }公式のリリースノートは、baseUrl が paths の接頭辞としてだけでなく、モジュールを探す起点としても扱われていたことを問題に挙げています。そのせいで、@app/ のような別名のつもりがない import まで、src の下から解決されることがありました。6.0 で非推奨になり、7.0 では使えません。
対象: TypeScript 5.x〜7.0 照合した一次資料: 公式ドキュメント 照合: 2026-10-25 最終更新: 2026-10-25
お使いの版で挙動が違う場合があります。誤りに気づいたらこの解説を報告するから教えてください。