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

时间:2016-09-23 20:05:01

标签: typescript visual-studio-code

如何判断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代码的方法会自动将TypeScript更新为最新发布的版本,还是必须单独完成TypeScript更新?

9 个答案:

答案 0 :(得分:123)

来自https://code.visualstudio.com/docs/languages/typescript#_using-newer-typescript-versions

  

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

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

VS Code使用什么TS版本?

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

VS Code status bar TypeScript version

更改全局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
  4. 找到{your_global_npm_path}

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

    更改本地TypeScript版本

    1. 在VS Code中打开项目
    2. 在本地安装所需的TypeScript版本,例如npm install --save-dev typescript@2.0.5
    3. 打开VS代码工作区设置( F1 > Open Workspace Settings
    4. 更新/插入"typescript.tsdk": "./node_modules/typescript/lib"
    5. 现在只有您安​​装此TypeScript版本的项目才会使用该TypeScript版本,此项目中的VS Code将忽略全局安装。

      注意: --save-dev会更新项目的package.json,并将您安装的TypeScript版本添加为devDependency

答案 1 :(得分:13)

Visual Studio Code附带了自己的TypeScript稳定版本,但您可以按照docs

中的说明切换到更新版本
  

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

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

答案 2 :(得分:10)

是否可以确定Visual Studio Code是否正在使用2.0.3版本?

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

enter image description here

是否有一种用于更新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设置 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正在从指定目录加载TypeScript,确认VS Code正在使用TypeScript的npm版本进行智能感知。在步骤4中:

enter image description here

  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,您现在应该能够为全局安装的TypeScript节点程序包构建VSs中的Intellisense。

答案 3 :(得分:4)

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

enter image description here

如果您点击号码(上面的2.4.0),您将看到一个选项,可以选择您想要使用的版本:

enter image description here

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

npm install -g typescript@2.7.2

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

答案 4 :(得分:3)

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

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

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

'Select Typescript Version...' command

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

答案 5 :(得分:0)

虽然我在Mac上使用Spotlight时找不到文件tsserver.js,但我再次尝试使用mdfind,我发现它的位置是 “在/ usr /本地/ LIB / node_modules /打字稿/ LIB /”

所以我在settings.json

中编辑我的工作区设置时使用了该路径

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

答案 6 :(得分:0)

我遇到了类似的问题,现在我通过修改系统上的环境变量成功获得了最新版本的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并通过Options>将TypeScript库更新到最新版本。扩展和更新。在那里,我搜索了最新版本的TypeScript并安装了它。

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

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

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

答案 7 :(得分:0)

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

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

答案 8 :(得分:0)

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