提问人:Page MTR 提问时间:8/1/2023 最后编辑:Lenka ŠimečkováPage MTR 更新时间:8/1/2023 访问量:41
我想从这个 catch 块中删除任何内容,下面是我的代码
i want to remove any from this catch block , below is my code
问:
const apiCallingFunction = async (data: any) =\> {
try {
let response = await axiosPost("/api", { ...data });
return response;
} catch (err: any) {
return err.response;
}
};
我想从捕获块中删除任何内容。
答:
0赞
Harshit Vadhera
8/1/2023
#1
import { AxiosError } from "axios";
const apiCallingFunction = async (data: any) => {
try {
let response = await axiosPost("/api", { ...data });
return response;
} catch (err: unknown) {
return (err as AxiosError).response;
}
};
Axios 具有称为 AxiosError 的错误内置类型
评论
0赞
Benjamin Rae
8/1/2023
你试过编译该代码吗?这打破了 ts(1196)Catch clause variable type annotation must be 'any' or 'unknown' if specified.
0赞
Harshit Vadhera
8/1/2023
对不起,我的坏东西已经更新了代码
0赞
ngtrthinh
8/1/2023
#2
我不认为“从捕获块中删除”是解决这个问题的好做法,因为进入捕获块的任何内容都应该是意外错误,应该输入为 .作为参考,这里在 Typescript 的官方 github 中讨论了这种做法。any
unknown
如果您使用的是 Typescript >4.4,我建议您只保留 catch 块而不添加类型(在此 PR 中解释catch(err) { // some code }
)
评论