setError(e.message) 报错: Object is of type 'unknown'.

来源:4-6 【副作用钩子】useEffect 使用指南

慕运维1377350

2021-09-27

setError(e.message) 报错: Object is of type ‘unknown’.
请问老师try{} catch(e) {}这个e,为什么在我的代码里没法被识别?

写回答

2回答

阿莱克斯刘

2021-09-29

的确挺奇怪,这个问题是typescript 4.0 try catch新引入的。解决思路如下,使用

if (error instanceof Error) {
    this.setState({
        error: error.message,
        loading: false,
    });
}

先通过if语句判断一下error的类型,缩小error的类型范围,从Unkonwn变为Error类型以后就不会报错了

//img.mukewang.com/szimg/6141913a09ce204414100938.jpg

谢谢你的提醒,估计我需要更新一下课程内容。

1
1
慕虎3545857
问题已解决,谢谢
2021-10-10
共1条回复

慕虎3545857

2021-09-28

我也有同样的情况…

0
0

React18 系统精讲 结合TS打造旅游电商平台

React18 精讲 + 结合 TS 实战 + 热门业务开发,获取必备技能

1993 学习 · 1015 问题

查看课程