타입스크립트 꽝꽝
[TypeScript] 에러 TS2589: Type instantiation is excessively deep and possibly infinite 해결하기
bimppap
2022. 2. 18. 10:36
typeorm을 통해 레포에 도메인 정보를 저장하려는데 위와 같은 에러가 떴다.
잘 되던 코드가 갑자기 안 되는 거였기에 코드를 잘못 짠 줄 알고 계속 살펴봤지만 찾을 수 없었다;;
결국 타입스크립트가 또? 하면서 언어 탓하는 나쁜 개발자 마인드가 되었는데...
이번엔 정말로 타입스크립트가 타입스크립트한 거였다 🙄
결론부터 말하자면 타입스크립트의 버전 문제였고, 버전을 낮추면서 해결되었다.
에러가 날 당시 프로젝트의 typeorm과 typescript 버전은 다음과 같았다.
검색해보니 typeorm 깃허브에 관련 버그 이슈가 있었다. (당시 typescript 버전 3.6.x)
뿐만 아니라 react-i18next 에서도 같은 문제가 발생하고 있었다.
두 이슈 모두 typescript 4.5.x 버전이 문제를 일으키고 있어 하향하거나 다른 옵션을 택하는 것으로 문제를 해결했다.
typeorm의 경우 타입스크립트 버전을 3.4.3으로 낮추면서 해결이 되었다.
react-i18next의 경우 타입스크립트 버전이 4.5.2일때 같은 오류를 일으켰으나 4.5.5이 되면서 이슈가 해결되었다.
(그런데 왜 typeorm은 아직도...)
typeorm 이슈가 2019에 거론되었으니 혹시나 싶어 버전을 조금씩 높여가면서 확인해보았는데 타입스크립트 3.9.10 버전을 넘어가면 상단의 에러가 떴다.
타입스크립트 4.x.x 버전도 업데이트하면서 수정되겠지만 당분간은 해당 버전으로 이용해야겠다.