我刚刚开始使用Visual Studio Code,当我创建一个名为index.html的新文件时,我会看到此警告消息
全局安装的tsc编译器(1.0.3.0)与VS Code的语言服务(1.8.10)之间的版本不匹配
有人可以指导我解决这个问题。
这是严重还是我可以忽略。我用Google搜索但无法获得更多信息
由于
答案 0 :(得分:28)
我将此添加到我的settings.json
文件中,可通过preferences > Workspace Settings
访问:
"typescript.tsdk": "node_modules/typescript/lib"
现在我不再收到此错误,并在屏幕的右下角显示我已安装的Typescript的当前版本。
答案 1 :(得分:17)
[更新] VS Code 1.6 now ships with TypeScript 2.0.3
。
我刚安装了最新的Typescript,目前为v.2.0.3
,并在macOS Sierra上安装了VS Code v.1.5.3
。出于某种原因,完全遵循官方文档并没有为我工作。
以下是我的工作方式:
全球安装最新版本后:
npm i -g typescript
,我将以下行添加到我的settings.json
文件中(由cmd + ,
打开):
"typescript.tsdk": "/usr/local/lib/node_modules/typescript/lib",
希望这有助于其他人。
[更新] 正如@ptpaterson在下面的评论中提到的,在Windows上路径为:"typescript.tsdk": "C:/Users/{user_name}/AppData/Roaming/npm/node_modules/typescript/lib/"
答案 2 :(得分:10)
您必须更改Visual Code正在使用的TypeScript版本以匹配您安装的版本:
https://code.visualstudio.com/docs/languages/typescript#_using-newer-typescript-versions
以上摘自链接:
如果您想使用较新版本的TypeScript,您可以定义指向包含TypeScript tsserver.js文件的目录的typescript.tsdk设置(文件>偏好设置>用户/工作区设置)。
您可以使用npm list typescript找到安装位置,tsserver.js通常位于lib文件夹下。
例如:
{ "typescript.tsdk": "node_modules/typescript/lib" }
答案 3 :(得分:9)
您必须更新您的Typescript安装并在之后重新启动Code:
npm install -g typescript
或
npm install -g typescript@1.8.10
如果消息有效,则不应再显示该消息。
答案 4 :(得分:8)
生成此错误是因为我在系统路径变量中引用了较旧的TypeScript安装:
C:\Program Files (x86)\Microsoft SDKs\TypeScript\1.0\
删除此条目后,Visual Studio代码错误已解决。
但是,我的TypeScript文件无法转换,因为构建操作找不到tsc.exe
文件。
安装SDK时(通过Visual Studio或通过手动*.visx
安装),安装tsc.exe
文件并更新PATH环境变量以引用此文件所在的文件夹(见上文)。
还有另一种方法可以使用node.js在Windows环境中转换文件:
使用npm安装TypeScript:
npm install -g typescript
这会将TypeScript文件添加到您的个人资料AppData
文件夹中:
C:\Users\{your_user_name}\AppData\Roaming\npm\node_modules\typescript\lib
配置Visual Studio代码用户 settings.json
文件以引用此文件夹:
{ "typescript.tsdk": "C:\\Users\\{your_user_name}\\AppData\\Roaming\\npm\\node_modules\\typescript\\lib" }
添加/更新用户 PATH环境变量以引用包含tsc.cmd
文件的文件夹:
%USERPROFILE%\AppData\Roaming\npm
答案 5 :(得分:4)
上述解决方案都不适用于我 - 首先,这是我希望更新到最新版本的全局tsc。
在我做了一些调查后发现问题出在系统的PATH变量上; tsc.cmd (以及 tscserver.cmd )存在于以下位置:
您可以做的是处理环境\用户变量,以便首先从%USERPROFILE%解决 tsc 命令,而不是程序文件
快速&脏的方法只是从程序文件路径中删除 tsc.cmd 和 tscserver.cmd 。
答案 6 :(得分:3)
安装typecript的v2.0.3是不够的......但是然后更新package.json上的版本依赖对我有用。
Npm命令:
npm install -g typescript@2.0.3
package.json更新了一行:
"typescript": "^2.0.3"
答案 7 :(得分:1)
全局安装TypeScript以跨工作区共享安装。在这种情况下,您使用npm install -g typescript@next
安装它。
然后,您必须使用typescript.tsdk设置在setting.json
文件(File -> Preferences -> Workspace Settings
)上告诉VS Code安装位置。将typescript.tsdk设置为包含已安装的TypeScript模块的tsserver.js
文件的lib文件夹的路径。
在Windows上:
"typescript.tsdk": "C:/Users/<MyUser>/AppData/Roaming/npm/node_modules/typescript/lib"
在Mac上:
"typescript.tsdk": "/usr/local/lib/node_modules/typescript/lib"
答案 8 :(得分:1)
安装VSCode 1.6.0修复了TypeScript版本不匹配警告消息。
答案 9 :(得分:1)
我遇到此问题的经验(在Mac OS X 10.12.2上的VSCode 1.8中)是因为我一直在使用NVM,而我的代码在NVM版本上运行,VSCode正在查看节点的系统安装
仔细检查您正在使用哪个npm安装来全局安装typescript。如果有疑问(在linux / mac上),请从命令行使用which tsc
来验证VSCode使用的位置。
例如,如果我只是致电npm i -g typescript
,npm
会解析为~/.nvm/versions/node/v6.9.1/bin/npm
。我必须通过显式调用/usr/local/bin/npm i -g typescript
来解决问题,因为VSCode默认在/usr/local/bin/node
中查找节点。
答案 10 :(得分:0)
如果您应该在事后选择忽略,那么您可以通过偏好设置将其添加到settings.json
文件中:
"typescript.check.tscVersion": false
根据VS Code 1.10.2中的评论:
检查全局安装TypeScript编译器(例如tsc)是否不同 使用过的TypeScript语言服务。
答案 11 :(得分:0)
您认为这是Microsoft产品,他们会在自己的网站上提供Windows路径
https://code.visualstudio.com/docs/languages/typescript#_using-newer-typescript-versions
但他们没有。它们只提供Unix路径类型。 使用:- 在Windows上:&#34; typescript.tsdk&#34;:&#34; C:/ Users / YourNameHere / AppData / Roaming / npm / node_modules / typescript / lib /&#34;
请注意,即使Windows对路径使用反向划分,也必须使用向前笔划!
其他一些答案错过了必要的最后一次中风。
答案 12 :(得分:0)
如果你真的不关心你使用哪个tsdk版本,你可以删除'typescript.tsdk'并使用Code中嵌入的那个。