Dev*_*low 16 typescript reactjs
我有这个代码:
import axios, {AxiosError} from "axios";
try {
some request
} catch(err:AxiosError) {
console.log(error.response) // Doesn't work
console.log(error.response?.data?.message) // Doesn't work
if(error.response?.data?.statusCode === 401) {
logout()
}
}
Run Code Online (Sandbox Code Playgroud)
由于 TypeScript,我无法检查里面的状态代码。如何在不诉诸类型的情况下正确描述错误类型any?我找不到人们如何在 TypeScript 中处理这个错误,也许我遗漏了一些东西。
Nic*_*wer 25
Typescript 无法验证任意代码可能抛出哪种类型的值。因此直到最近,错误的类型还必须是any。
} catch (err: any) {
Run Code Online (Sandbox Code Playgroud)
从 4.0 版本开始,typescript 还允许unknown.
} catch (err: unknown) {
Run Code Online (Sandbox Code Playgroud)
不支持任何其他内容。如果您想要更具体的内容,则需要编写代码来缩小抛出的事物类型的范围,或者需要使用类型断言。请记住,类型断言是告诉打字稿“我比你知道的更多,所以不要检查我的工作”的一种方式。如果您断言这是一个 AxiosError,但实际上可能是其他错误,则 typescript 无法向您指出该错误。
catch (err: unknown) {
const error = err as AxiosError;
//...
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14215 次 |
| 最近记录: |