프로젝트 개발 기록/[개발] trouble shooting
[Error: TS(2339)] TypeScript에서 catch(error) 에서 error message 사용하기
HelloJudy
2022. 6. 15. 12:07
💡문제 상황
JavaScript에서 catch 문에서는 error.message를 쓰는 경우가 많았다.
TypeScript에서도 JS와 같이 코드를 작성하니 다음과 같은 오류가 생겼다.
TypeScript는 error의 타입을 unknown을 기본값으로 갖는다.
그래서 catch 절 error 변수에 Error 타입을 넣어보았다.
하지만 뚜둥! 다음과 같은 오류가 생겼다.
catch 문에서 발생하는 에러가 Error 객체가 아닌 에러일 수도 있기 때문에 Error 타입을 지정해줄 수 없다.
따라서 error가 Error 객체라면 error.message를 반환하고 다른 객체라면 error 자체를 stringify 해서 반환하자.
💡 해결 방법
catch문에 사용할 error util 함수를 만들었다.
- error-util.ts
const getErrorMessage = (error: unknown) => {
if (error instanceof Error) return error.message;
return String(error);
};
export { getErrorMessage };
- try - catch 문에 적용
try {
.
.
};
} catch (error) {
return {
ok: false,
status: "fail",
message: getErrorMessage(error),
};
}
📌 Reference
반응형