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

What TypeScript version is Visual Studio Code using? How to update it?

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


TypeScript可以自动更新吗?

VS Code ships with a recent stable version of TypeScript.

– from VS Code docs

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

VS Code使用什么TypeScript版本?

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

VS Code status bar TypeScript version

更改全局TypeScript版本

  • 全局安装所需的TypeScript版本,例如npm install -g [email protected]
  • 打开VS Code用户设置(F1> Open User Settings)
  • 更新/插入"typescript.tsdk":"{your_global_npm_path}/typescript/lib",您可以通过键入npm root -g来找出{your_global_npm_path}
  • 现在,使用VS Code打开的所有项目都将使用此TypeScript版本,除非当然有工作空间设置可以替代此版本。

    更改本地TypeScript版本

  • 在VS Code中打开项目
  • 在本地安装所需的TypeScript版本,例如npm install --save-dev [email protected]

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

  • 打开VS Code工作区设置(F1> Open Workspace Settings)

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

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

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

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

      vs code footer

    • 在用户界面中选择它:

      select ts version in UI

  • 也可以看看:

    • 使用TypeScript的工作区版本
    • 改进typescript.tsdk的文档以使工作空间使用更清晰


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

    VS Code ships with a recent stable version of TypeScript. If you want
    to use a newer version of TypeScript, you can define the
    typescript.tsdk setting (File > Preferences > User/Workspace Settings)
    pointing to a directory containing the TypeScript tsserver.js file.
    ...
    For example:

    1
    2
    3
    {
      "typescript.tsdk":"node_modules/typescript/lib"
    }


    有没有办法确定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)后,它将安装在以下文件夹中:

    1
    2
    3
    4
    C:\\Users\\username\\AppData\
    oaming\
    pm\
    ode_modules\\typescript\\

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

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

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

  • 使用以下命令找到npm在哪里安装了TypeScript:就我而言,它返回C:\\Users\\username\\AppData\
    oaming\
    pm

  • typescript.tsdk设置的值覆盖为:C:\\\\Users\\\\username\\\\AppData\\\
    oaming\\\
    pm\\\
    ode_modules\\\\typescript\\\\lib

    请注意,使用双反斜杠可以正确地转义带有反斜杠的字符串。

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

  • enter image description here

  • 通过转到此文件夹并更改文件名,确认VS Code使用正确版本的TypeScript进行编译。
  • C:\ Users \用户名\ AppData \ roaming \ npm \ tsc.cmd(类似于tsc1.cmd)

    现在尝试在VS Code中构建(任务->运行任务-> tsc:build-tsconfig.json),您应该在VS Code终端窗口中看到以下错误消息:

    1
    2
    '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节点包构建VSs中的Intellisense。

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

    enter image description here

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

    enter image description here

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

    1
    npm install -g [email protected]

    2.7.2替换为要安装的版本。


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

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

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


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

    1
    2
    3
    4
    {
        // ... other User settings
       "typescript.tsdk":"./node_modules/typescript/lib"
    }

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

    Select Typescript Version... command

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


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

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


    我遇到了类似的问题,现在我通过修改系统上的环境变量成功拥有了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并安装了它。

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

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

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