【问题标题】:What TypeScript version is Visual Studio Code using? How to update it?Visual Studio Code 使用什么 TypeScript 版本?如何更新它?
【发布时间】:2017-02-01 18:48:56
【问题描述】:

如何知道 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 ??
  • 我相信它是一个项目文件设置。如果您使用记事本打开项目文件(如 .csproj 文件),则可以删除 typescript 版本元素,该元素应强制项目使用 PC 上安装的最新版本。
  • @Hackerman 不,这只是显示全球 TSC 版本。

标签: typescript visual-studio-code


【解决方案1】:

TypeScript 可以自动更新吗?

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

– 来自VS Code docs

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


VS Code 使用的是什么 TypeScript 版本?

当你打开一个 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,将您安装的 TypeScript 版本添加为 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 Code 页脚显示的版本:

    • 在 UI 中选择它:


另见:

【讨论】:

  • 仅供参考,我在 Windows 上,我必须将完整路径放入我的全局节点模块文件夹 -- C:\\Users\\myname\\AppData\\Roaming\\npm\\node_modules\\typescript\\lib。您可以在命令行中使用npm root -g 仔细检查您的。否则,这可能应该被标记为答案@Richard Fuhr
  • 添加此设置会导致 Visual Studio 代码完全禁用所有打字稿语言功能。这不是您要寻找的答案。
  • @BentOnCoding 这不会禁用任何东西。检查tsdk 路径中的拼写错误,并确保在您的存储库中安装了 TypeScript。此外,还有 11 个人认为这完全正确,可以投票 ;-)
  • VS Code 现在似乎正在自动获取 TypeScript 版本更新,所以这里的答案可能不再是最新的。
  • 此设置可以应用于工作区设置,以便专门针对特定版本的项目可以配置为保持这种状态。此外,注意您不能针对不兼容的 MSI 安装版本。查看网站:code.visualstudio.com/docs/typescript/typescript-compiling
【解决方案2】:

Visual Studio Code 带有自己的 TypeScript 稳定版本,但您可以切换到更新版本,如他们的 docs 中所述

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

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

【讨论】:

  • 我的 tsc --version 是 2.0.3 但在我的 Mac 上找不到 tsserver.js 文件,所以无法更改 VSCode 中的设置
  • 添加此设置会导致 Visual Studio 代码完全禁用所有打字稿语言功能。这不是您要寻找的答案。
  • 我在 v1.55.2 中看不到 typescript.tsdk 选项
【解决方案3】:

有没有办法确定 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 使用 TypeScript npm 安装的 lib 文件夹。你这样做:

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

  2. 搜索typescript.tsdk设置

  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 正在从指定目录加载 TypeScript,确认 VS Code 正在使用 npm 版本的 TypeScript 进行智能感知在第 4 步中:

  1. 通过转到此文件夹并更改文件名来确认 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
  1. 将文件改回 tsc.cmd,您现在应该能够在 VS Code 中为全局安装的 TypeScript 节点包构建并拥有 Intellisense

【讨论】:

  • 为什么这不是对已经拥有 99% 信息的答案的编辑?
  • 我想我们永远不会知道
【解决方案4】:

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

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

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

唯一潜在的缺点是这意味着您总是需要在您正在工作的工作区中安装 Typescript。不过,如果您在任何地方编写 Typescript,我认为这是一个合理的期望.

【讨论】:

    【解决方案5】:

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

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

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

    npm install -g typescript@2.7.2
    

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

    【讨论】:

      【解决方案6】:

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

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

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

      【讨论】:

        【解决方案7】:

        我建议安装 JavaScript and TypeScript Nightly extension,这将使 VS Code 的行为就好像它的内置版本是来自 npm 的当前 typescript@next

        【讨论】:

          【解决方案8】:

          我也遇到过类似的问题,现在我通过修改系统上的环境变量成功获得了最新版本的 TypeScript。 在我的例子中,我们需要一个高于 2 的 TypeScript 版本。 但我只能使用 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 并安装了它。

          这在前面提到的父目录中提供了一个新版本。 然后我将路径变量更改为:

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

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

          【讨论】:

            【解决方案9】:

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

            编译器和语言服务可以有不同的版本。

            【讨论】:

              猜你喜欢
              • 2017-03-08
              • 1970-01-01
              • 2017-02-20
              • 1970-01-01
              • 2018-06-16
              • 1970-01-01
              • 1970-01-01
              • 2017-03-04
              • 2023-01-17
              相关资源
              最近更新 更多