Visual Studio CodeはどのTypeScriptバージョンを使用していますか? それを更新するにはどうすればいいですか?
Visual Studio Codeで使用されているTypeScriptのバージョンをどうやって確認できますか?特に、私は以前TypeScript 1.8.10とVSCode 1.4.0を使用していました。まずVSCodeを最新バージョンである1.5.3に更新しました。しかし、コマンドラインから確認すると、TypeScriptのバージョンはまだ1.8.10のままでした。そこでコマンドラインからTypeScriptを更新し、現在は2.0.3になっています。
Visual Studio Code がバージョン 2.0.3 を使用しているかどうかを確実に確認する方法はありますか?
Visual Studio Codeを更新するとTypeScriptも自動的に最新リリース版に更新される方法はありますか、それともTypeScriptの更新は独立して行う必要がありますか?
回答 #1
TypeScriptは自動で更新できますか?
VS Codeには、最近の安定版のTypeScriptが同梱されています。
- VS Code のドキュメントより
これは、VS Codeで使用されているTypeScriptのバージョンを自動的にアップグレードする方法がないことを意味します。しかし、ユーザー設定またはワークスペース設定を変更することで、VS Codeが使用するTypeScriptのバージョンを上書きすることは可能です。
VS CodeはどのTypeScriptバージョンを使っていますか?
TypeScript ファイルを開くと、VS Code は画面右下のステータスバーに TypeScript のバージョンを表示するはずです:
新しいバージョンでは(またはステータスバーが混雑している場合?)、情報を表示するポップアップを見るために、TypeScript の隣の {} にマウスをホバーする必要があるかもしれません。
グローバルな TypeScript バージョンの変更
- 希望する TypeScript のバージョンをグローバルにインストールします。例えば
npm install -g [email - VS Code ユーザー設定を開く(F1 >
ユーザー設定を開く) - 更新/挿入
"typescript.tsdk": "{GLOBAL_NPM_PATH}/typescript/lib"
ヒント: npm root -g を実行すると {GLOBAL_NPM_PATH} を確認できます。
もちろん、ワークスペースの設定で上書きされていない限り、VS Code で開くすべてのプロジェクトはこの TypeScript バージョンを使用します。
ローカルのTypeScriptのバージョンを変更する
VS Codeでプロジェクトを開く
希望する TypeScript のバージョンをローカルにインストールします。例えば
npm install --save-dev [email--save-devはプロジェクトのpackage.jsonを更新し、インストールした TypeScript のバージョンをdevDependencyとして追加します。VS Code ワークスペースの設定を開く(F1 >
ワークスペースの設定を開く)更新/挿入
"typescript.tsdk": "./node_modules/typescript/lib"これで、この TypeScript バージョンをインストールしたプロジェクトだけがその TypeScript バージョンを使用し、グローバルインストールはこのプロジェクトでは VS Code によって無視されます。
typescript.tsdkエントリを追加した後、次に VS Code の UI を使用して新しいバージョンを選択することも必要です:UIでそれを選択してください:
参照:
- 新しいバージョンのTypeScriptを使用する
typescript.tsdkのドキュメントを改善して、ワークスペースでの使用方法をより明確にする
回答 #2
Visual Studio Codeには独自の安定版TypeScriptが付属していますが、ドキュメントに記載されている通り、新しいバージョンに切り替えることもできます
VS Code には最新の安定版 TypeScript が同梱されています。もし新しいバージョンの TypeScript を使用したい場合は、TypeScript の tsserver.js ファイルを含むディレクトリを指すように typescript.tsdk 設定(ファイル > 基本設定 > ユーザー/ワークスペース設定)を定義できます。
...
例えば:{ "typescript.tsdk": "node_modules/typescript/lib" }
回答 #3
Visual Studio Code がバージョン 2.0.3 を使用しているかどうかを確実に確認する方法はありますか?
Visual Studio CodeでTypeScriptファイルを開くと、右下に使用しているTypeScriptのバージョンが表示されます:
Visual Studio Codeを更新すると、TypeScriptも自動的に最新のリリースバージョンに更新される方法はありますか、それともTypeScriptの更新は個別に行う必要がありますか?
私がやっている方法は、Visual Studio CodeにTypeScriptのnpmモジュールがインストールされているフォルダーを明示的に伝えることです。私はWindowsを使っているので、TypeScriptをインストールするnpmコマンド(npm install -g typescript)を実行すると、次のフォルダーにインストールされます:
C:\Users\username\AppData\Roaming\npm\node_modules\typescript\
つまり、TypeScript の npm インストールの lib フォルダーを使用するように Visual Studio Code に指示する必要があります。これを行うには、次のようにします:
VS Code の設定を開く(ファイル -> 環境設定 -> 設定)
typescript.tsdk設定を検索次のコマンドで npm が TypeScript をインストールした場所を確認します:
npm list -g typescript。私の場合、次のように返されました:C:\Users\username\AppData\Roaming\npmtypescript.tsdk設定の値を次のように上書きしてください:C:\\Users\\username\\AppData\\Roaming\\npm\\node_modules\\typescript\\libバックスラッシュを正しくエスケープするために、二重バックスラッシュを使用していることに注意してください。TypeScript ファイルを開き、右下の TypeScript バージョン番号をクリックして、ステップ 4 で指定したディレクトリから VS Code が TypeScript を読み込んでいることをタスクウィンドウで確認することで、VS Code がインテリセンスに npm バージョンの TypeScript を使用していることを確認してください。
- このフォルダーに移動してファイル名を変更することで、VS Codeがコンパイルに正しいバージョンのTypeScriptを使用していることを確認してください:
C:\Users\username\AppData\Roaming\npm\tsc.cmd(例えば tsc1.cmd のようなものに)
次に、VS Codeでビルドを試みてください(タスク -> タスクの実行 -> tsc:build - tsconfig.json)、するとVS Codeのターミナルウィンドウにこのエラーメッセージが表示されるはずです:
'tsc' is not recognized as an internal or external command, operable program or batch file.
The terminal process terminated with exit code: 1
- ファイルを tsc.cmd に戻すと、グローバルにインストールされた TypeScript ノードパッケージに対して、VS Code でビルドとインテリセンスが使用できるようになります
回答 #4
新しいワークスペースを設定するたびに毎回構成することなく、ワークスペースの node_modules にインストールされている Typescript バージョンを自動的に使用するには、ユーザー設定 JSON(ワークスペースではなく)でデフォルトの Typescript 設定を相対パスを使って設定できます:
{
// ... other User settings
"typescript.tsdk": "./node_modules/typescript/lib"
}
さて、今「TypeScript バージョンの選択...」コマンドを実行すると、「VS Code のバージョン」は常に「ワークスペースのバージョン」と同じになります:
これの唯一の潜在的な欠点は、作業しているワークスペースに常にTypeScriptがインストールされている必要があるということです。ただし、どこでTypeScriptを書いている場合でも、それは妥当な期待だと思います。







