はじめに
手っ取り早くReactアプリを作りたかったので npm create vite@latest を実行したのですが、VSCode上でエラーが出ました。
ネットで同じエラーの人が見つからず自分の環境固有の問題かと思いましたが、原因を調べると仕組みの話で納得感のある解決ができたので記録しておきます。
エラー内容
| |
を実行してプロジェクトを作成し、VSCodeで開くと tsconfig.app.json と App.tsx でエラーが発生していました。


原因
VSCodeは独自のTypeScriptを持っている
そもそも VSCode自体がTypeScriptで開発されています。VSCodeのソースコードはTypeScriptで書かれており、TypeScriptはVSCodeにとって開発言語そのものです。
さらにVSCodeは、エディタ上で型チェックや補完を動かすために TypeScript Language Service(TypeScriptの型解析エンジン)を内部に同梱しています。これがエディタ機能の核であり、プロジェクトの node_modules とは完全に別物です。
| |
npm install を実行すると package.json に記載のTypeScript(5.x系)は node_modules/typescript にインストールされます。
しかし VSCodeのエディタ機能はデフォルトで同梱のTypeScript Language Serviceを使うため、node_modules のTypeScriptは参照しません。
これはVSCodeの意図的な設計で、「プロジェクトにTypeScriptがインストールされていなくてもエディタが動く」ようにするためです。
なぜエラーになるのか
Viteが生成する tsconfig.app.json はTypeScript 5.0以降で追加された設定を使っています。
| |
VSCode同梱の古いTypeScript(4.9.3)はこのオプションを知らないため、エラーとして扱ってしまいます。

解決方法
VSCodeが参照するTypeScriptを、同梱のものからワークスペース(node_modules)のものに切り替えます。
- コマンドパレットを開く(
Cmd + Shift + P) - 「TypeScript: Select TypeScript Version」を選択
- 「ワークスペースのバージョンを使用 5.x.x」を選択
これで解決!