如何配置TypeScript将所有捕获异常的类型设置为any而非unknown
问题原因
该报错是TypeScript 4.4及以上版本的默认行为导致的:当tsconfig.json中strict配置项开启时,useUnknownInCatchVariables编译选项会默认启用,此时所有catch语句捕获的异常变量默认类型为unknown,而非旧版本的any,直接访问异常的属性就会触发类型校验错误。
全局配置解决方案
如果需要全局将catch捕获的异常默认类型改回any,只需要在tsconfig.json的compilerOptions中添加如下配置即可:
{ "compilerOptions": { // 其余原有配置保持不变 "useUnknownInCatchVariables": false } }
局部调整方案
如果不想全局修改配置,仅需要针对单个catch块取消报错,可以直接手动为异常变量指定any类型:
try { // 你的业务逻辑代码 } catch (err: any) { // 此处err类型已标注为any,可正常访问任意属性 console.log(err.message) }
内容的提问来源于stack exchange,提问作者Ivo Fritsch
相关产品推荐
相关产品推荐

