En utilisant le nouveau type React.FC sur votre projet existant, vous pouvez rencontrer l'erreur suivante :
Property ‘children’ does not exist on type <YourCustomTypeProps>
Cela parce que la signature du type à changé dans les versions récentes de React !
La propriété children a été retirée du type React.FunctionComponent (React.FC) on va donc devoir la déclarer explicitement dans nos propre propriétés.
TLDR; Cela permet de prévenir les bugs comme celui-ci :
Ainsi, vous pouvez être certain que le composant que vous utilisez prend en charge les enfants, et améliorer votre base de code/qualité.
Dans les versions précédentes la propriété children était déjà définie en tant que propriété optionnelle dans le type React.FC.
Dans les versions récentes, cela à été supprimé. Maintenant il faut désormais spécifier explicitement la propriété selon notre besoin. Elle peut être requise ou optionnelle selon les besoins de notre logique métier.
Il est possible de surcharger les types de React en créant un fichier de définition personnalisé. Cela peut être un fichier de définition global que l'on utilise déjà dans le projet ou alors il est possible d'en créer un nouveau avec un nom arbitraire comme react.d.ts tant qu'il se trouve dans le périmètre de compilation TypeScript.
La définition suivante rétabliera le comportement équivalent aux type de @types/react version 17.
Il ne reste plus qu'à profiter de notre forte définition de type ;)