如何解决TypeScript报错Object is of type 'unknown'及error类型变为unknown的问题
该变更为TypeScript 4.4版本正式引入的默认规则调整:开启strict模式时,catch语句捕获的error变量默认类型从any改为unknown,对应编译选项为useUnknownInCatchVariables。
可选择的回退方案
- 全局回退变更
在项目根目录的tsconfig.json中,找到compilerOptions节点,添加如下配置:
"useUnknownInCatchVariables": false
配置保存后重新编译项目,所有catch块的error类型会直接回退为any,对应报错全部消除。
- 局部修复指定报错
如果不希望全局调整规则,仅需要修复个别报错,可在catch语句中手动标注error类型:
try { // 原有业务代码 } catch (err: any) { // 原有错误处理逻辑不需要修改 console.log(err.message) }
- 锁定TypeScript版本
如果是依赖自动升级导致的版本迭代触发该问题,可以直接在package.json中固定TypeScript版本到4.3.x及以下:
"devDependencies": { "typescript": "~4.3.5" }
修改后重新执行依赖安装即可。
内容的提问来源于stack exchange,提问作者Ben Walters
相关产品推荐
相关产品推荐

