できない.dev

VSCode の型エラーが tsc と食い違う(TypeScript バージョン不一致)

VSCode は内蔵の TypeScript で型チェックするため、プロジェクトの typescript と版が違うとエディタと tsc の結果がずれる。
ワークスペース版を選択すれば揃う。

#vscode#typescript#tsserver#version#tsdk

公開:

要約

エディタ上の波線(型エラー)と、ターミナルの tsc やビルドの結果が食い違うときは、両者が別バージョンの TypeScript を使っているのが典型です。

VSCode は標準で内蔵の TypeScript 言語サービスを使うため、プロジェクトに入れた typescript とバージョンが違うと挙動が変わります。
ワークスペース版に切り替えると揃います。

よくある原因

  1. 内蔵版とローカル版の差: VSCode 同梱の TypeScript と node_modules/typescript のバージョンが異なる。
  2. ワークスペース版が未選択: 切り替えていないため VSCode 既定版で型チェックされている。
  3. ローカル版が無い: typescript が依存に無く、エディタが内蔵版へフォールバックする。
  4. 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 typescript

3. TS Server を再起動する

設定変更が反映されないときは、コマンドパレットで「TypeScript: Restart TS Server」を実行します。
これでエディタと tsc の型チェック結果が一致します。

この記事は役立ちましたか?