일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- ESlint
- map
- CORS
- RTK Query
- 타입 좁히기
- Cypress
- tailwind
- 결정 알고리즘
- SSR
- async/await
- 리터럴 타입
- app router
- 태그된 유니온
- 호이스팅
- Promise
- 투포인터
- 인터섹션
- useAppDispatch
- webpack
- TS
- 반공변성
- 이분 검색
- 공변성
- Jest
- recoil
- React
- autosize
- 무한 스크롤
- CI/CD
- dfs
Archives
- Today
- Total
짧은코딩
TS와 건망증 본문
반응형
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