解决VSCode与TypeScript 4.4+ useUnknownInCatchVariables校验不一致问题
问题原因
VSCode默认绑定的内置TypeScript版本低于你项目使用的4.4+版本,无法识别useUnknownInCatchVariables新配置的默认规则,才会出现编辑器校验和tsc编译结果不一致的问题。
解决步骤
- 先确保项目本地安装了4.4及以上版本的TypeScript,没有的话执行命令安装:
npm install typescript@latest --save-dev
- 切换VSCode使用项目本地的TypeScript版本:
- 按下快捷键
Ctrl+Shift+P(Mac系统为Cmd+Shift+P)唤起命令面板 - 输入
TypeScript: 选择TypeScript版本,回车执行 - 在弹出的选项中选择「使用工作区版本」即可
- (可选)为了兼容性更强,可在
tsconfig.json的compilerOptions中显式声明配置:
"useUnknownInCatchVariables": true
配置完成后回到示例代码,VSCode会立即对e.stack抛出和tsc一致的Object is of type 'unknown'错误提示,二者校验逻辑即可对齐。如果使用了Volar等第三方TS校验插件,同步将插件绑定的TS版本切换为工作区版本即可。
内容的提问来源于stack exchange,提问作者Striar
相关产品推荐
相关产品推荐

