Visual Studio Code使用什么TypeScript版本?如何更新呢?


111

如何知道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更新?


tsc --version ??
Hackerman's

我相信它是一个项目文件设置。如果使用记事本打开项目文件(如.csproj文件),则可以删除打字稿版本元素,这将强制项目使用PC上安装的最新版本。
伊戈尔(Igor)2016年

@Hackerman Nope,仅向您显示全局TSC版本。
Fabian Lauer

Answers:


191

TypeScript可以自动更新吗?

VS Code附带了TypeScript的最新稳定版本。

–来自VS Code文档

这意味着无法自动升级VS Code使用的TypeScript版本。但是,您可以通过修改用户设置或工作区设置来覆盖VS Code使用的TypeScript版本。


VS Code使用什么TypeScript版本?

打开TypeScript文件时,VS Code应该在屏幕右下方的状态栏中显示TypeScript版本:

VS Code状态栏TypeScript版本


更改全局TypeScript版本

  1. 例如,全局安装所需的TypeScript版本 npm install -g typescript@2.0.5
  2. 打开VS Code用户设置(F1> Open User Settings
  3. 更新/插入,"typescript.tsdk": "{your_global_npm_path}/typescript/lib"您可以通过键入npm root -g来找出{your_global_npm_path}

现在,使用VS Code打开的所有项目都将使用此TypeScript版本,除非当然有工作空间设置可以覆盖此版本。


更改本地TypeScript版本

  1. 在VS Code中打开项目
  2. 例如,在本地安装所需的TypeScript版本 npm install --save-dev typescript@2.0.5

    --save-dev将更新您的项目package.json,将您加入安装了打字稿版本devDependency

  3. 打开VS Code工作区设置(F1> Open Workspace Settings

  4. 更新/插入 "typescript.tsdk": "./node_modules/typescript/lib"

    现在,只有在其中安装此TypeScript版本的项目将使用该TypeScript版本,此项目中的VS Code将忽略全局安装。

  5. 添加typescript.tsdk条目后,还需要使用VS Code UI选择新版本:

    • 单击“ VS代码”页脚中显示的版本:

      与代码页脚

    • 在用户界面中选择它:

      在用户界面中选择ts版本


也可以看看:


3
仅供参考,我在Windows上,我必须将完整路径放到我的全局节点模块文件夹-中C:\\Users\\myname\\AppData\\Roaming\\npm\\node_modules\\typescript\\lib。您可以npm root -g在命令行中使用仔细检查。否则,这可能应该被标记为答案@Richard Fuhr
Cody

添加此设置会导致Visual Studio代码完全禁用所有打字稿语言功能。这不是您要寻找的答案。
BentOnCoding

3
@BentOnCoding这不会禁用任何功能。检查tsdk路径中的拼写错误,并确保在您的存储库中安装了TypeScript。另外,还有11个人认为此举足够正确;(
Fabian Lauer

VS Code现在似乎正在自动获取TypeScript版本更新,因此此处的答案可能不再是最新的。
米奇·西格尔

1
可以将此设置应用于工作空间设置,以便可以将针对特定版本的项目配置为保持该状态。另外,请注意,您不能针对不兼容的MSI安装版本。参见网站:code.visualstudio.com/docs/typescript/typescript-compiling
Itanex

19

Visual Studio Code带有自己的TypeScript稳定版本,但是您可以按照其文档中的描述切换到较新版本

VS Code附带了TypeScript的最新稳定版本。如果要使用较新版本的TypeScript,则可以定义 typescript.tsdk设置(“ 文件” > “首选项” >“ 用户/工作区设置”),该设置指向包含TypeScript tsserver.js文件的目录。
...
例如:

{
   "typescript.tsdk": "node_modules/typescript/lib"
}

我的tsc --version是2.0.3,但是在我的Mac上找不到tsserver.js文件,因此无法更改VSCode中的设置
Richard Fuhr

添加此设置会导致Visual Studio代码完全禁用所有打字稿语言功能。这不是您要寻找的答案。
BentOnCoding


17

有没有办法确定Visual Studio Code是否正在使用2.0.3版本?

在Visual Studio Code中打开TypeScript文件,在右下角,您将看到它正在使用的TypeScript版本:

在此处输入图片说明

是否有用于更新Visual Studio Code的方法,该方法可以将TypeScript自动更新到最新发布的版本,还是必须独立完成TypeScript更新?

我一直在做的方式是显式地告诉Visual Studio Code安装TypeScript npm模块的文件夹。我在Windows上,因此在您运行npm命令安装TypeScript(npm install -g typescript)后,它将安装在以下文件夹中:

C:\Users\username\AppData\Roaming\npm\node_modules\typescript\

因此,您需要告诉Visual Studio Code使用 lib TypeScript npm安装文件夹。您可以这样操作:

  1. 打开VS Code设置(文件->首选项->设置)

  2. 搜索typescript.tsdk设置 在此处输入图片说明

  3. 找到在哪里NPM安装打字稿:npm list -g typescript。就我而言,它又回来了C:\Users\username\AppData\Roaming\npm

  4. typescript.tsdk设置的值重写为:C:\\Users\\username\\AppData\\Roaming\\npm\\node_modules\\typescript\\lib 请注意使用双反斜杠以使带有反斜杠的字符串正确转义。

  5. 通过打开TypeScript文件,单击右下角的TypeScript版本号,并在任务窗口中看到VS Code正在从步骤4中指定的目录中加载TypeScript,来确认VS Code正在使用TypeScript的npm版本进行智能感知。

在此处输入图片说明

  1. 通过转到此文件夹并更改文件名,确认VS Code使用正确版本的TypeScript进行编译。

C:\ Users \用户名\ 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
  1. 将文件更改回tsc.cmd,您现在应该可以为全局安装的TypeScript节点程序包构建VSs中的Intellisense。

2
为什么这不是已经拥有该信息99%的答案的编辑?
SgtPooki

我想我们永远不会知道
Denny

4

您应该在底部的栏中看到一个版本号:

在此处输入图片说明

如果单击数字(上面的2.4.0),将为您提供选择要使用的版本的选项:

在此处输入图片说明

如果没有找到所需的版本,则意味着可能未安装该版本,因此必须安装它。

npm install -g typescript@2.7.2

替换2.7.2为您要安装的版本。


1

虽然在Mac上使用Spotlight时找不到文件tsserver.js,但我再次尝试使用mdfind,但发现其位置为“ / usr / local / lib / node_modules / typescript / lib /”

所以我在settings.json中编辑我的工作区设置时使用了该路径

现在,我正在使用最新版本的TypeScript,而VSCode告诉我我正在使用最新版本。


0

我遇到了类似的问题,现在我通过修改系统上的环境变量成功拥有了TypeScript的最新版本。就我而言,我们需要的TypeScript版本高于2。但是我只能使用版本1.8.3。第一件事是我进入了系统环境变量并检查了路径变量。在其中找到了对TypeScript版本1.8.3的引用。

C:\ Program Files(x86)\ Microsoft SDKs \ TypeScript \ 1.8.3 \

当我检查父目录时,这也是该目录中安装的最高版本。我本来以为通过全局安装最新版本,我也会在这里看到它,但它并不存在。您在此处看到的版本是随Visual Studio安装的版本(不是Visual Studio代码)。

因此,我去了Visual Studio,并通过“选项”>“扩展和更新”将TypeScript库更新为最新版本。我在那里搜索了最新版本的TypeScript并安装了它。

这使新版本在前面提到的父目录中可用。然后,我将path变量更改为:

C:\ Program Files(x86)\ Microsoft SDKs \ TypeScript \ 2.2 \

当我现在打开VS Code并键入tsc -v时,我看到我正在使用最新版本。不再有不匹配的消息,等等。希望这对你们有所帮助。


0

Typescript包具有编译器和语言服务。VScode带有Typescript语言服务,而不是编译器。您可以在右下角看到语言服务,就像显示其他答案一样,但是看不到使用了哪个编译器版本。

您可以为编译器和语言服务使用不同的版本。


0

要自动使用工作区中安装的Typescript版本node_modules,而不必在每次设置新工作区时都进行配置,可以在User Settings JSON不是Workspace)中将默认Typescript设置设置为使用相对路径:

{
    // ... other User settings
    "typescript.tsdk": "./node_modules/typescript/lib"
}

现在,当您运行“选择打字稿版本...”命令时,“ VS代码的版本”将始终与“工作区版本”相同:

'选择打字稿版本...'命令

唯一潜在的缺点是,这意味着您始终需要在工作区中安装Typescript。尽管如此,如果您在任何地方编写Typescript,我都认为这是合理的期望。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.