Quand utiliser JSX.Element, ReactNode et ReactElement en TypeScript ?
Bonjour à tous ! J'ai commencé à étudier React avec TypeScript et je suis confronté à une confusion concernant les types pour les valeurs de retour des composants et les props.
Voici un composant simple :
```typescript
interface Props {
children: ???; // Quoi écrire ici ?
icon: ???; // Et ici ?
}
function Card({ children, icon }: Props) {
return (
{icon}
);
}
```
J'ai vu dans différents projets trois types : `JSX.Element`, `ReactNode` et `ReactElement`. Ils sont apparemment utilisés pour la même chose, mais pas tout à fait.
Par exemple, je sais que :
- `ReactNode` peut être utilisé pour children
- `JSX.Element` est retourné par les composants fonctionnels
- `ReactElement` est le type de base
Mais quand j'écris :
```typescript
function MyComponent(): JSX.Elem
``` {children}