Definitelytyped: [@types/react] : React.Fragment n'a aucune construction ou signature d'appel

Créé le 3 déc. 2017  ·  3Commentaires  ·  Source: DefinitelyTyped/DefinitelyTyped

  • [x] J'ai essayé d'utiliser le package @types/react et j'ai eu des problèmes.
  • [x] J'ai essayé d'utiliser la dernière version stable de tsc. https://www.npmjs.com/package/typescript
  • [x] J'ai une question inappropriée pour StackOverflow . (Veuillez y poser toutes les questions appropriées).
  • [x] [Mention](https://github.com/blog/821-mention-somebody-they-re-notified) les auteurs (voir Definitions by: dans index.d.ts ) afin qu'ils puissent répondre.

    • Auteurs : @uniqueiniquity , @tkrotoff , @vsiao ,

Il y a eu une discussion sur le type approprié de React.Fragment dans #21146, mais bien que symbol | number puisse refléter avec précision le type React interne pour Fragment , cela empêche React.Fragment d'être utilisé comme élément TSX.

<React.Fragment> // error here: React.Fragment does not have any construct or call signatures
  <div>Child 1</div>
  <div>Child 2</div>
</React.Fragment>

Je me rends compte que nous pouvons rendre des fragments à l'aide de la syntaxe <></> , mais la documentation de React indique que cela réduit simplement les sucres à <React.Fragment></React.Fragment> et que c'est le seul moyen d'ajouter des clés à un fragment .

Par conséquent, je pense que le type de React.Fragment devrait être remplacé par quelque chose de plus proche de React.ComponentType<{}> , ce qui lui donnera des accessoires key et children .

Je peux ouvrir un PR si les gens sont d'accord avec cette proposition.

Commentaire le plus utile

@uniqueiniquity Ça a l'

Tous les 3 commentaires

Merci d'avoir attrapé ça, @jgoz !
Je pense que la meilleure approche serait pour nous de résoudre ce problème du côté de TypeScript, plutôt que de changer le type de React.Fragment pour contourner le comportement du compilateur.
Je vais me renseigner et voir si c'est la meilleure approche.

@uniqueiniquity Ça a l'

@jgoz Allez-y et ouvrez le PR. Après quelques discussions ici, il semble que vous ayez la bonne approche pour le moment.

Cette page vous a été utile?
0 / 5 - 0 notes