강의

멘토링

커뮤니티

Cộng đồng Hỏi & Đáp của Inflearn

Hình ảnh hồ sơ của geunhee02123438
geunhee02123438

câu hỏi đã được viết

[Gia hạn] TypeScript tất cả trong một: Phần 2. Phân tích thực tế

Cách xử lý AxiosError và lỗi không xác định

axios catch 에서 error 타입에 대해 as 없이 이렇게 사용하면 어떨까요?

Viết

·

376

0

interface IResponse<T = {}> {
  data: T;
  message: string;
}

interface IUser {
  id: string;
  email: string;
  name: string;
}

class CustomError<T> extends AxiosError<T> {
  constructor(...args: any[]) {
    super(...args);
  }

  static isCustomError<T>(value: any): value is CustomError<T> {
    return value instanceof CustomError<T>;

  }
}


axios.get('').then().catch((error: unknown) => {
  if (CustomError.isCustomError<IResponse<IUser>>(error)) {
    // console.error(
    //   (error as  AxiosError<{ message: string }>.response?.data.message)
    // )
    
    const errorMessage = error.response?.data.message;
  }
})

response의 대해서 타입이 좁혀지긴 하지만, 지저분해서 맞는 방법인지 모르겠네요

typescript

Câu trả lời 1

1

zerocho님의 프로필 이미지
zerocho
Người chia sẻ kiến thức

axios는 이제 자체적으로 axios.isAxiosError 메서드를 제공합니다!

geuni님의 프로필 이미지
geuni
Người đặt câu hỏi

axios.isAxiosError 사용해도 타입 좁혀지네요!

감사합니다 ㅎㅎ

Hình ảnh hồ sơ của geunhee02123438
geunhee02123438

câu hỏi đã được viết

Đặt câu hỏi