如何判断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更新?
答案 0 :(得分:123)
来自https://code.visualstudio.com/docs/languages/typescript#_using-newer-typescript-versions:
VS Code附带了最近稳定版的TypeScript。
这意味着无法自动升级VS Code使用的TypeScript版本。但是,您可以通过修改用户设置或工作区设置来覆盖VS Code使用的TypeScript版本。
当您打开TypeScript文件时,VS Code应在屏幕右下方的状态栏中显示TypeScript版本:
npm install -g typescript@2.0.5
Open User Settings
)"typescript.tsdk": "{your_global_npm_path}/typescript/lib"
您可以输入npm root -g 现在,使用VS Code打开的所有项目都将使用此TypeScript版本,除非当然有一个工作空间设置会覆盖它。
npm install --save-dev typescript@2.0.5
Open Workspace Settings
)"typescript.tsdk": "./node_modules/typescript/lib"
现在只有您安装此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版本:
是否有一种用于更新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
文件夹。您可以通过以下方式做到这一点:
打开VS Code设置(文件->首选项->设置)
查找npm在何处安装TypeScript的位置:npm list -g typescript
。就我而言,它返回了C:\Users\username\AppData\Roaming\npm
将typescript.tsdk
的设置值覆盖为:C:\\Users\\username\\AppData\\Roaming\\npm\\node_modules\\typescript\\lib
请注意,使用双反斜杠可以使带有反斜杠的字符串正确转义。
通过打开TypeScript文件,单击右下角的TypeScript版本号,并在任务窗口中查看VS Code正在从指定目录加载TypeScript,确认VS Code正在使用TypeScript的npm版本进行智能感知。在步骤4中:
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
答案 3 :(得分:4)
您应该会看到底栏上列出的版本号:
如果您点击号码(上面的2.4.0),您将看到一个选项,可以选择您想要使用的版本:
如果您没有看到所需的版本,则意味着它可能未安装,您必须安装它。
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代码的版本”将始终与“工作区版本”相同:
唯一的缺点是这意味着您总是在工作区中安装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
一样。