typescript에서
try-catch 구문을 사용하면서
error 값을 사용하려 하면
특정 버전까지는 error의 타입이 any여서 문제가 안되었지만
이젠 unkown 이 되면서 해당 에러가 발생한다.
어떤 방법으로 해결할 수 있을까?
킹갓 any 를 사용한다
위처럼 error의 타입을 any로 해준다면 에러는 없어진다
역시 애니는 신이야!!
하지만.. any는 다른 케이스에서도 그렇고
타입 스크립트 사용 시 추천되는 방식은 아니다.
isAxiosError 타입가드 사용하기
axios에서 제공하는 타입가드를 사용할 수 있다.
해당 조건을 걸어주면
일반적으로 axios에서 발생하는 에러를 쉽게 케어할 수 있다.
때문에 바로 response 까지의 값을 사용할 수 있다.
보통 서버로 부터 받는 응답은 response.data 에 실려온다.
여기서 response는 옵셔널 한 선택지기에 response 뒤에 ? 를 붙여주어야 한다.
혹은 if 조건문에 해당 내용을 추가해 주어도 된다.
아래는 해당 관련 깃허브 링크이다.
https://github.com/axios/axios/tree/main#typescript
GitHub - axios/axios: Promise based HTTP client for the browser and node.js
Promise based HTTP client for the browser and node.js - axios/axios
github.com
에러 사유를 굳이 디테일하게 노출해야하는 상황이 아니라면
try-catch 에서
error 값으로 분기를 태우기보다
실패 상황 처리만 하는 것도 하나의 팁이지 싶다.
일반적인 팝업을
보여주는 식으로 말이다.
'서버와의 연결이 불안합니다. 잠시 후에...'
'...기능이 실패했습니다.'
등으로 말이다.
끝
'Front-end' 카테고리의 다른 글
[React] Errorboundary 테스트 해보기 (feat: Uncaught Runtime Error) (0) | 2024.03.27 |
---|---|
[Next.js] 환경변수, NODE_ENV 개발계요? production 입니다. (0) | 2024.03.13 |
[TS] is 사용해서 타입가드 만들어보기 (0) | 2024.02.22 |
[React] event에 type 달아주기 (0) | 2024.02.21 |
[React] React에서 Django로 파일 보내기, headers 를 조심해!! (feat. Content-Type) (0) | 2024.02.20 |