What's error?
Next.js 강의를 신나게 듣다가 다시 한 번 에러에 봉착했다.
Date 타입을 왜 받을 수 없다는 것인지 당최 알 수 없었다.
toString()과 같은 메소드들을 붙여서도 써보았지만 해결되지 않았다.
How to solve
그렇게 한두 시간 삽질을 하다가 문득, 위의 에러 문구에 있는 index.d.ts 파일이 궁금해져서 클릭하고 들어가봤다.
해당 파일 중에서도 에러에 표시된 1375번째 줄, 9번째 열에 들어가 보니
마찬가지로 에러 문구에도 표시되어 있던 ReactNode 라는 친구가 눈에 띄었다.
이 ReactNode를 command 키와 함께 클릭해서 들어가 보았다.
뭔가 알 것도 같았다.
아래와 같이, 타입들 사이에 Date를 살포시 넣어보았다.
그랬더니 에러를 간단하게 해결해낼 수 있었다.
Why?
공부하고 있는 인터넷 강의 사이트에서 나와 같은 에러를 발견했다는 코멘트가 많이 없는 것으로 봐서는,
버전이 업데이트된 최근에 발생하고 있는 이슈가 아닐까, 하고 조심스럽게 예측해본다.
하지만 한 가지 의문점이 든다.
이렇게 TypeScript 소스 코드를 직접적으로 건드려서 문제를 해결하는 방식이 과연 옳은 방식일까?
이 부분에 대해서 혹시 여러분들은 어떻게 생각하시는지, 더 나은 해결책이 있을지,
좋은 생각이나 방법이 있다면 자유롭게 공유해주시기를 부탁드린다. 🙏
번외. 날짜를 표시하기 위해 추가적으로 했던 것들
필자와 같이 노마드코더의 Next.js 강의를 듣고 있는 입장이라면,
위 코드만 가지고서는 Answer에 날짜가 표시되지 않을 것이다.
그래서 추가적인 작업을 조금 더 진행했다.
우선 community 글을 조회하는 pages > api > posts > [id] > index.ts에서 select 구문에 createdAt을 추가했다.
날짜가 표시되었다.
하지만 중간에 T와, 마지막의 Z 같은 게 거슬렸다.
그래서 렌더링을 하고 있는 pages > community > [id].tsx 로 가서 단순하게나마 formatting을 해주었다.
It's done!!!
Pretty cool! 🥳
후일담. ReactNode 원복 (2022/06/03)
내 해결책이 결코 정상적이지 않다는 것을 스스로도 인지하고 있었기 때문에
노마드코더의 니콜라스와도 Comment를 주고 받으며 좀 더 이 문제에 관심을 기울였다.
그러다 오늘 6월 3일, 그냥 ReactNode에 넣었던 Date 타입을 다시 빼주니까
문제 없이 Date 타입이 출력되는 것을 확인했다.
module을 직접 수정하지 않고도 문제를 해결할 수 있다는 점은 기쁘지만,
도대체 왜 그때는 안 됐고, 지금은 되는 것인가???
'Troubleshooting > in Lectures' 카테고리의 다른 글
Next.js 기본 생성을 시도하다가 만난 2가지 에러 (0) | 2022.03.26 |
---|---|
[java.lang.UnsupportedClassVersionError] (0) | 2021.03.10 |