타입스크립트에서 env사용할때 Types of property '변수명' are incompatible.

박진현·2021년 12월 6일
0

에러핸들링

목록 보기
18/28

이게 왜 안되는가 곰곰히 생각해 봤더니 env에 대한 타입을 안정해줘서 그렇다.

서버에서

npm install @types/dotenv --save-dev 으로 dotenv에대한 타입을 설치하거나
이래도 안된다면 env.d.ts 파일을 만들고 안에

declare namespace NodeJS {
  export interface ProcessEnv {
    SECRET_KEY: string;
    ...
  }
}

이런식으로 타입들을 일일이 적어줘야한다.
(그래봤자 string | undefined 이거밖에 안된다🤯)

클라이언트에서

아무데나 파일을 만들고 이렇게 쓴 다음 그냥 임포트해서 쓰면 된다. 핵심은 as string!

export const s3config = {
  bucketName: process.env.REACT_APP_BUCKET_NAME as string,
  region: process.env.REACT_APP_REGION as string,
  accessKeyId: process.env.REACT_APP_ACCESS_ID as string,
  secretAccessKey: process.env.REACT_APP_ACCESS_KEY as string,
};
profile
👨🏻‍💻 호기심이 많고 에러를 좋아하는 프론트엔드 개발자 박진현 입니다.

0개의 댓글