现象
在 ts
中,使用 try-catch
捕获异常的时候,catch
的 err
是个 unknown
类型,不管是使用 interface
还是 any
,都不能解决下面的报错:
但是实际在运行 tsc
的时候是 0 error
的。
解决
这个问题,一般是 ts
的严格模式 strict
导致的,在 strict
下,会捕获所有 unknown
类型的非法使用姿势,比如取值:
function(x: unknown) {
console.log(x.name);
}
大部分场景下,这个错误是因为,开启了 "strict": true
,检查下项目 tsconfig.json
,如果开启了,关闭(删除 or false
)就可以了。