我想从这个catch块中删除任何内容,下面是我的代码

问题描述 投票:0回答:2
const apiCallingFunction = async (data: any) =\> {
  try {
    let response = await axiosPost("/api", { ...data });
    return response;
  } catch (err: any) {
    return err.response;
  }
};

我想从 catch 块中删除任何内容。

reactjs typescript error-handling try-catch
2个回答
0
投票
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
投票

我不认为“从 catch 块中删除

any
”对于这个问题来说是一个好的做法,因为任何进入 catch 块的东西都应该是意外错误,应该输入为
unknown
。作为参考,这种做法已经在 Typescript 的官方 github here 进行了讨论。

如果您使用的是 Typescript >4.4,我建议您保留 catch 块

catch(err) { // some code }
而不添加类型(在此 PR 中进行解释)

© www.soinside.com 2019 - 2024. All rights reserved.