在AXIOS请求的catch中未知类型



我已经创建了一个自定义错误并为它设置了一个自定义消息。然后在某个地方抛出自定义错误并在其他地方捕获。我想访问我之前设置的消息,但是TypeScript告诉我error是未知类型!我怎样才能修好它?

async activeAccount(uuid: string) {
try {
const response = await ApiClient(
METHODS.GET,
"Account/approveEmail",
false,
{
uuid
}
);
} catch (error) {
this.showToastError(error.message);
}
}

不能保证catch捕获的东西实际上是一个错误,因为throw可以抛出任何(这就是为什么类型是unknown,你缩小它与检查做任何事情)。编译器会适当地警告您没有考虑以下内容:


try {
throw undefined;
} catch (err) {
console.log(err.message); // oops
}

要解决这个问题,您可以添加一个检查来确保您有一个实际的错误:


try {
...
} catch (err) {
if (err instanceof Error) {
console.log(err.message); // ok
}
}

相关内容

  • 没有找到相关文章

最新更新