一觉睡醒,我vscode里的TypeScript项目全报错了

5,480 阅读1分钟

怎么了

最近我把vscode的自动更新打开了,更新结束后,我一个TypeScript项目全线报错。所有的Catch语句都会报错,但是编译的时候不会报错。现象如下:

4e9e1089e8e7179417d92884952c96b.png

0AQ6}_(Q2YPDIF6Z@{R3G.png

为什么

  1. vscode更新的时候,vscode本地使用的TypeScript也会更新(如果有新版本的话),vscode本地使用的ts版本,与我们项目中的ts版本很可能不一致。

  2. 在Typescript4.4中,Catch 语句中默认使用 unknown 类型 (--useUnknownInCatchVariables)

0)K8A9Q621TGALGG8HGDLHN.png Typescript4.4

  1. 我们项目中使用的TypeScript版本为4.4以前的版本,因此编译不会报错。

怎么办

我们让vscode使用我们项目中使用的TypeScript版本,保持版本一致。

  1. 在Workspace Settings(JSON)中配置"typescript.tsdk": "./node_modules/typescript/lib",让vscode能找到项目中node_modules里安装的TypeScript版本。

4Z8%KH76`S@_~V9QSZTJUKN.png

  1. 将vscode使用的TypeScript版本切换成项目安装的TypeScript版本。

1d06b1dec539209b0015dd46d5de19c.png

2894da8c8b25b0f53261972c78d8761.png

2894da8c8b25b0f53261972c78d8761.png