Avatar ·

Quand utiliser JSX.Element, ReactNode et ReactElement en TypeScript avec React ?

Salut ! J'ai commencé à apprendre TypeScript avec React et je me confonds constamment avec les types pour décrire ce qui peut être retourné d'un composant ou passé comme children. Sur Internet, je rencontre souvent trois types : `JSX.Element`, `ReactNode` et `ReactElement`. Mais quand utiliser lequel — c'est un mystère pour moi. Par exemple, j'écris un composant wrapper : ```typescript interface WrapperProps { children: ??? // Quoi mettre ici ? } ``` Ou quand je veux spécifier explicitement le type de retour d'une fonction composant : ```typescript const MyComponent = (): ??? => { return
Hello
; }; ``` J'ai essayé d'utiliser `ReactNode`, mais alors TypeScript râle quand j'essaie de passer quelque chose comme un tableau de composants. Puis j'ai essayé `JSX.Element` — ça semble fonctionner, mais je ne suis pas sûr que ce soit correct. Et quant à `ReactElement`, je ne comprends même pas à quoi il sert. Expliquez-moi, s'il vous plaît, simplement : quelle est la différence entre ces trois types et dans quelles situations utiliser lequel ? Je vous serais très reconnaissant pour votre aide.