리액트 타입스크립트 프로젝트에서 컴포넌트를 선언할때 React.FC
키워드를 선언할 수 도 있고 선언하지 않을 수도 있다.
React.FC 를 사용했을 때의 장점
1) props 에 기본적으로 children 이 들어가있다. 2) 컴포넌트의 defaultProps, propTypes, contextTypes 를 설정 할 때 자동완성이 될 수 있다
React.FC 를 사용했을 때의 단점
1) children 이 옵셔널 형태로 들어가있다보니까 어찌 보면 컴포넌트의 props 의 타입이 명백하지 않다.
- 예를 들어 어떤 컴포넌트는 children이 무조건 있어야 하는 경우도 있을 것이고, 어떤 컴포넌트는 children 이 들어가면 안되는 경우도 있을 것인데 무조건 children을 받을 수 있는 형태이다.
2) React.FC는 (아직까지는) defaultProps 가 제대로 작동하지 않는다.
이러한 이슈때문에 React.FC 를 쓰지 말라는 팁도 존재한다. 이를 쓰고 안쓰고는 자유이지만, 사용하지 않는 것을 권장한다.