TypeORM 초기 설정 중 위 이미지와 같이 에러가 발생합니다.
Typescript에서 발생한 문제로, 타입 선언 후 초기값을 설정하지 않아서 생긴 문제였어요..ㅎ
tsconfig.json
의 strictPropertyInitialization
의 설정을 false
로 변경해주면 에러가 사라집니다.🙂
strictPropertyInitialization
: class property가 constructor에서 값이 할당되었는지 확인하는 기능 활성화 여부 "compilerOptions": {
...,
"strictPropertyInitialization": false,
...,
},
💡 해당 방법은 개인적으로 좋은 방법이 아니라고 생각해요.
비활성화를 하게 되면 잠재적으로 문제(개발 시 실수..?)를 이를킬 소지가 더 커지기 때문입니다.
하지만 해당 옵션을 활성화해서 단점보다 장점이 더 크다면 활성화하는게 맞겠죠? :)
_
컴파일러에게 "선언은 안했지만 무조건 값이 있다고 생각해~"라고 알려주는 방법입니다.
컴파일러에게 "필수가 아닌 속성이야~"라고 알려주는 방법입니다.
초기값을 선언해 에러를 발생시키지 않도록 합니다.
💡 필자의 4번과 같이 최대한 초기값을 선언하려고 합니다. :)
🚨 참고사항
stackoverflow 해당 이슈에 대한 토론에서 참고했어요. :)
필수인 속성에는 !
를 사용해 타입을 단언해주었습니다. (MySQL 기준으로, primary key
, 또는 컬럼 중 default 값
이 설정되어있는 컬럼)
선택인 속성에는 값을 할당해 에러가 나지 않도록 처리했습니다.😀
🚨 참고사항
TypeORM-entity Github issue에서 참고했습니다. :)