에러메시지
Argument of type 'string | undefined' is not assignable to parameter of type 'ManipulateType | undefined'.
hotfix를 하고 develop에 반영을 했는데, 내가 수정한 부분이 아닌 곳에서 에러가 났다.
확인해보니 타입에러였다.
해당 부분은 로그인때 토큰옵션을 주는 부분이었는데 'day' 들어가는 부분에 타입에러가 났다.
// 예제
dayjs().add(7, 'day')
// 실제코드
expiresAt: dayjs()
.add(Number(process.env.JWT_EXPIRES_IN_TIME), process.env.JWT_EXPIRES_IN_UNIT)
expiresAt: dayjs()
.add(Number(process.env.JWT_EXPIRES_IN_TIME), process.env.JWT_EXPIRES_IN_UNIT || 'JWT_EXPIRES_IN_UNIT')
그냥 기본값으로 string 타입의 데이터를 넣어줬다.
expiresAt: dayjs()
.add(Number(process.env.JWT_EXPIRES_IN_TIME), process.env.JWT_EXPIRES_IN_UNIT!)
스택오버플로우를 참고해서 수정해봤다.
expiresAt: dayjs()
.add(Number(process.env.JWT_EXPIRES_IN_TIME), process.env.JWT_EXPIRES_IN_UNIT || undefined)
타입때문에 답답해서 undefined를 넣어봤다.
expiresAt: dayjs()
.add(Number(process.env.JWT_EXPIRES_IN_TIME), process.env.JWT_EXPIRES_IN_UNIT || 'day')
ManipulateType 을 타고 들어가서 어떤 값을 받는지 확인해서 넣어봤다.
expiresAt: dayjs()
.add(Number(process.env.JWT_EXPIRES_IN_TIME), Env.get('JWT_EXPIRES_IN_UNIT', 'day'))
팀원분의 조언으로 adonis 공식문서를 참고해 애초에 env에서 데이터 가져오는 코드를 바꿨다.
어떻게 해결방법을 생각해내셨냐고 여쭤보니, 감이라고 하셨다.. ㅎ
type이 문제라면 any타입으로 처리하면 되지 않을까? 라고 생각하셨다고 했다.
큰 도움이 되었다.
https://docs.adonisjs.com/guides/environment-variables#document