반응형
Notice
Recent Posts
Recent Comments
Link
관리 메뉴

짧은코딩

TS와 건망증 본문

TS/TS(with ZeroCho)

TS와 건망증

5_hyun 2022. 8. 20. 19:18
반응형

TS와 건망증

interface Axios {
  get(): void;
}
interface CustomError extends Error {
  response?: {
    data: any;
  };
}
declare const axios: Axios;

(async () => {
  try {
    await axios.get();
  } catch (err: unknown) {
    console.error((err as CustomError).response?.data);
  }
})();

원래 ts 에러 코드에는

이렇게 밖에 없다. 하지만 위 코드의 CustomError 처럼 response를 추가하면 더 추가할 수 있다.

위 코드에다가 err.response?.data를 추가하면 위에서 선언해줬지만 ts가 건망증이 생겨서 잊어버린다.

interface Axios {
  get(): void;
}
class CustomError extends Error {
  response?: {
    data: any;
  };
}
declare const axios: Axios;

(async () => {
  try {
    await axios.get();
  } catch (err: unknown) {
    if (err instanceof CustomError) {
      console.error(err.response?.data);
      err.response?.data;
    }
  }
})();

따라서 customError이란 변수를 만들어서 사용하면 해결이 가능하다. 

if문을 사용하지 않으면 에러가 발생할 수도 있다. 또한 가입 가드로 인해서 as를 안 사용해도 된다.

그리고 interface는 js로 변환하면 사라져서 js로 변환해도 남아있는 class를 사용하는 것이 좋다.

반응형

'TS > TS(with ZeroCho)' 카테고리의 다른 글

npm 사이트에서 JS, TS에 따른 설치법  (0) 2022.08.25
Utility Types  (0) 2022.08.21
리턴값, 매개변수의 대입 범위  (0) 2022.08.20
타입을 만드는 법  (0) 2022.08.20
제네릭  (0) 2022.08.18
Comments