VSCode の型エラーが tsc と食い違う(TypeScript バージョン不一致)
VSCode は内蔵の TypeScript で型チェックするため、プロジェクトの typescript と版が違うとエディタと tsc の結果がずれる。
ワークスペース版を選択すれば揃う。
#vscode#typescript#tsserver#version#tsdk
公開:
要約
エディタ上の波線(型エラー)と、ターミナルの tsc やビルドの結果が食い違うときは、両者が別バージョンの TypeScript を使っているのが典型です。
VSCode は標準で内蔵の TypeScript 言語サービスを使うため、プロジェクトに入れた typescript とバージョンが違うと挙動が変わります。
ワークスペース版に切り替えると揃います。
よくある原因
- 内蔵版とローカル版の差: VSCode 同梱の TypeScript と
node_modules/typescriptのバージョンが異なる。 - ワークスペース版が未選択: 切り替えていないため VSCode 既定版で型チェックされている。
- ローカル版が無い:
typescriptが依存に無く、エディタが内蔵版へフォールバックする。 - tsdk の指定漏れ: マルチルート構成などで
typescript.tsdkが効いていない。
解決策
1. ワークスペース版を選ぶ
.ts ファイルを開き、ステータスバーの TypeScript バージョン表示をクリックして「Select TypeScript Version」→「Use Workspace Version」を選びます。
2. 設定で固定してチームで共有する
選択結果を設定ファイルに残し、コミットして全員で揃えます。
// .vscode/settings.json
{
"typescript.tsdk": "node_modules/typescript/lib"
}ローカル版が無ければ先に用意します。
npm install -D typescript3. TS Server を再起動する
設定変更が反映されないときは、コマンドパレットで「TypeScript: Restart TS Server」を実行します。
これでエディタと tsc の型チェック結果が一致します。