Reactコンポーネントの定義にFCではなくVFCを使う
- [RFC] React 18 and types-only breaking changes · Issue #46691 · DefinitelyTyped/DefinitelyTyped
- https://react-typescript-cheatsheet.netlify.app/docs/basic/getting-started/function_components/
簡単に言うと
React.FC
のpropsの型定義には暗黙的にchildrenが含まれてしまう- 今後
@types/react
の18以降ではReact.FC
にchildrenは含まれなくなる予定(破壊的変更)- これを先取りして
@types/react
の16.9.48からReact.VFC
/React.VoidFunctionComponent
が追加されており、こちらではchildrenが含まれない
- これを先取りして
ということで
@types/react
18の時代を先取りし、基本的には全てをReact.VFC
で定義して、childrenが必要なコンポーネントではpropsに明示的にchildrenを定義しましょうReact.FC
からchildrenが消えた暁にはReact.VFC
は非推奨になるはずで、その時はVFC
をFC
に一括置換すれば問題ないはず
ということを会社のチーム内で話した。