ReactNode, ReactElement 그리고 JSX.Element
들어가며 Typescript로 개발을 하다보면 자주 마주치는 타입 ReactNode, JSX.Element 그리고 ReactElement.
어느 날 문득 나는 각 타입의 차이를 명확히 설명할 수 있나라는 의문이 들었고, 그 대답은 아니다였기에 정리해본다. ReactNode 위 코드를 보면 알 수 있듯이 Javascript 데이터 타입 대부분을 아우르는 타입으로, 아래에서 설명할 ReactElement 역시 포함한다. 정확히 어떤 타입을 prop으로 받을지 확실치않을 때, 혹은 어떤 타입이라도 허용 가능하게 하고싶을 때 any대신 ReactNode를 활용할 수 있다. ReactElement와 JSX.Element 와 는 모두 React.createElement()의 리턴 타입이라는 공통점을 가진다.
이를 더 정확히 알기 위해선 JSX에 대한 배경지식이 필요하니 간략하게 짚고 넘어가보자. JSX JSX는 Javascript의 확장 문법으로, Javascript 파일 하나에 렌더링…