💡문제 상황
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
반응형
'프로젝트 개발 기록 > [개발] trouble shooting' 카테고리의 다른 글
[AI] 자연어처리, konlpy 설치 (0) | 2022.06.23 |
---|---|
파이썬 가상 환경(virtualenv)과 Flask 서버 구축, pip freeze vs pipreqs (0) | 2022.06.18 |
hard delete(물리삭제)와 soft delete(논리삭제), sequelize에서 구현 (0) | 2022.06.13 |
[Error: TS(2339)] Express Request 확장하기 (0) | 2022.06.09 |
댓글