VisualStudio 代码使用什么 TypeScript 版本? 如何更新它?

如何判断 VisualStudio 代码中使用的是哪个版本的 TypeScript?特别是,我一直在使用 TypeScript1.8.10和 VSCode1.4.0。我首先将 VSCode 更新到最新版本,即1.5。但是从命令行检查,我发现我的 TypeScript 版本仍然是1.8.10。所以我从命令行更新了 TypeScript,现在是2.0。

有没有一种方法可以确定 Visual Studio Code 是否正在使用版本2.0.3?

是否有更新 VisualStudio 代码的方法可以自动将 TypeScript 更新到最新发布的版本,或者 TypeScript 更新必须独立完成?

134473 次浏览

VisualStudio 代码自带稳定版的 TypeScript,但您可以切换到其 医生中描述的更新版本

VS 代码附带了最近稳定的 TypeScript 版本 若要使用较新版本的 TypeScript,可以定义 Tsdk 设置(档案 > 偏好 > 用户/工作区设置) 指向包含 TypeScriptTsserver.js文件的目录。
...
例如:

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

TypeScript 可以自动更新吗?

VS 代码附带了最近稳定的 TypeScript 版本。

VS 代码文档

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


VS 代码使用什么样的 TypeScript 版本?

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

VS Code status bar TypeScript version

在新版本中(或者当状态栏拥挤时?)你可能需要将鼠标悬停在 TypeScript旁边的 {}上,才能看到弹出的信息:

VS Code status bar TypeScript version shown on hover

更改全局 TypeScript 版本

  1. 在全局范围内安装所需的 TypeScript 版本,例如 npm install -g typescript@2.0.5
  2. 打开 VS 代码用户设置(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 代码打开项目

  2. 在本地安装所需的 TypeScript 版本,例如 npm install --save-dev typescript@2.0.5

    --save-dev将更新项目的 package.json,添加作为 devDependency安装的 TypeScript 版本。

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

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

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

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

    • 点击 VS 代码页脚中显示的版本:

      vs code footer

    • 在 UI 中选择它:

      select ts version in UI


参见:

虽然在 Mac 上使用 Spotlight 时找不到 tsserver.js 文件,但我再次尝试使用 mdfind,发现它的位置是 ”/usr/local/lib/node _ module/type escript/lib/“

因此,我在 setings.json 中编辑工作区设置时使用了该路径

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

我也遇到过类似的问题,现在通过修改系统上的环境变量,我成功地获得了最新版本的 TypeScript。 在我的例子中,我们需要一个大于2的 TypeScript 版本。 但是我只能使用1.8.3版本。 首先,我转到我的系统环境变量,并检查路径变量。在那里我找到了一个关于 TypeScript 版本1.8.3的参考资料。

C: Program Files (x86) Microsoft SDK TypeScript 1.8.3

当我检查父目录时,这也是该目录中安装的最高版本。我本以为通过在全球安装最新版本,我也会在这里看到这一点,但它不存在。您在这里看到的版本是使用 VisualStudio 安装的版本(不是可视化工作室代码)。

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

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

C: Program Files (x86) Microsoft SDK TypeScript 2.2

当我现在打开 VS Code 并键入 tsc-v 时,我发现我使用的是最新版本。 没有错配消息了,等等,希望这对你们有点帮助。

您应该会看到底部栏中列出的版本号:

enter image description here

如果你点击数字(上面的2.4.0) ,你会看到一个选项,选择你想使用的版本:

enter image description here

如果您没有看到您想要的版本,这意味着它可能没有安装,您必须安装它。

npm install -g typescript@2.7.2

用要安装的版本替换 2.7.2

有没有一种方法可以确定 Visual Studio Code 是否正在使用版本2.0.3?

在 Visual Studio Code 中打开一个 TypeScript 文件,在右下角你会看到它使用的 TypeScript 版本:

enter image description here

是否有更新 VisualStudio 代码的方法可以自动将 TypeScript 更新到最新发布的版本,或者 TypeScript 更新必须独立完成?

我一直采用的方法是显式地告诉 VisualStudio 代码安装 TypeScriptnpm 模块的文件夹。我在 Windows 上,所以在你运行 npm 命令安装 TypeScript (npm install -g typescript)之后,它会安装到这个文件夹:

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

因此,您需要告诉 VisualStudio 代码使用 TypeScriptnpm 安装的 lib文件夹。你可以这样做:

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

  2. 搜索 typescript.tsdk设置 enter image description here

  3. 查找 npm 安装 TypeScript 的位置: 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 版本进行智能感知:

enter image description here

  1. 进入此文件夹并更改文件名,以确认 VS Code 正在使用正确的 TypeScript 版本进行编译:

C: 用户用户名 AppData Roaming npm tsc.cmd (类似 tsc1.cmd)

现在尝试构建 VS Code (Tasks-> Run Tasks-> 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 节点包构建并在 VS Code 中具有智能感知

类型脚本包有一个编译器和一个语言服务。 VScode 附带一个类型脚本语言服务,而不是编译器。您可以在右下角看到语言服务,就像其他答案显示的那样,但是您不能看到使用了什么编译器版本。

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

要自动使用安装在工作区的 node_modules中的类型脚本版本,而不必在每次设置新工作区时进行配置,可以在 用户设置(不是工作区)中设置默认的类型脚本设置,使用相对路径:

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

现在,当您运行“ Select Typecript Version...”命令时,“ VS Code’s Version”将始终与“ Workspace Version”相同:

'Select Typescript Version...' command

这样做的唯一潜在的缺点是,这意味着您需要在工作区中安装 Type 脚本。不过,如果你在任何地方写打字稿,我认为这是一个合理的期望。

我建议安装 JavaScript 和 TypeScript 夜间扩展,这将使 VS 代码的行为就好像它的内置版本是 npm 中的当前 typescript@next一样。