ts(2339)2 [Error: TS(2339)] TypeScript에서 catch(error) 에서 error message 사용하기 💡문제 상황 JavaScript에서 catch 문에서는 error.message를 쓰는 경우가 많았다. TypeScript에서도 JS와 같이 코드를 작성하니 다음과 같은 오류가 생겼다. TypeScript는 error의 타입을 unknown을 기본값으로 갖는다. 그래서 catch 절 error 변수에 Error 타입을 넣어보았다. 하지만 뚜둥! 다음과 같은 오류가 생겼다. catch 문에서 발생하는 에러가 Error 객체가 아닌 에러일 수도 있기 때문에 Error 타입을 지정해줄 수 없다. 따라서 error가 Error 객체라면 error.message를 반환하고 다른 객체라면 error 자체를 stringify 해서 반환하자. 💡 해결 방법 catch문에 사용할 error util 함수를 만들었다. e.. 2022. 6. 15. [Error: TS(2339)] Express Request 확장하기 😥 문제 상황 1. Token 검증 Middleware 작성 토큰 검증 코드를 작성하면서 req.currentUserId로 decoded한 값을 할당하려던 중 js 프로젝트에서는 오류가 없었던 코드가 ts에서 오류가 생겼다. // ./src/middlewares/loginRequired.ts ... try { if (!process.env.JWT_SECRET_KEY) { throw new Error("JWT_SECRET_KEY가 존재하지 않습니다."); } const secretKey: string = process.env.JWT_SECRET_KEY; const jwtDecoded: any = jwt.verify(userToken, secretKey); const userId = jwtDecoded.us.. 2022. 6. 9. 이전 1 다음 반응형