[typescript] process.env 환경변수 type에러

romini·2024년 5월 20일

문제 인식

.env에 선언한 환경변수를 사용하려고 하는데 ts 에러가 발생했다.

const decodedToken = jwt.verify(
  bearerToken,
  process.env.JWT_KEY
) as DecodedToken;

환경변수가 undefined일 가능성 때문에 발생하는 에러이다.

해결방법

해결방법은 매우 간단했다.

const decodedToken = jwt.verify(
  bearerToken,
  process.env.JWT_KEY!
) as DecodedToken;

느낌표(!)를 추가해서 환경변수가 undefined가 아님을 명시해주면 된다.

TypeScript에서 느낌표(!)는 "non-null assertion operator"라고 불리며, 이는 개발자가 해당 값이 null 또는 undefined가 아님을 TypeScript 컴파일러에게 명시적으로 알려주는 역할을한다.

이는 TypeScript가 strictNullChecks 옵션을 사용하는 경우에 특히 유용하다.

하지만 만약 값이 실제로 null 또는 undefined라면, 해당 코드가 실행될 때 오류가 발생한다.
! 연산자를 사용하기 전에 해당 값이 null 또는 undefined가 아님을 확실히 보장해야 한다.

0개의 댓글