Definitelytyped: [@types/react]: React.Fragment hat keine Konstrukt- oder Aufrufsignaturen

Erstellt am 3. Dez. 2017  ·  3Kommentare  ·  Quelle: DefinitelyTyped/DefinitelyTyped

  • [x] Ich habe versucht, das Paket @types/react und hatte Probleme.
  • [x] Ich habe versucht, die neueste stabile Version von tsc zu verwenden. https://www.npmjs.com/package/typescript
  • [x] Ich habe eine Frage, die für StackOverflow unangemessen ist. (Bitte stellen Sie dort entsprechende Fragen).
  • [x] [Erwähnen](https://github.com/blog/821-mention-somebody-they-re-notified) die Autoren (siehe Definitions by: in index.d.ts ), damit sie es können Antworten.

    • Autoren: @uniqueiniquity , @tkrotoff , @vsiao ,

Es gab einige Diskussionen über den richtigen Typ von React.Fragment in #21146, aber während symbol | number den internen React-Typ für Fragment genau wiedergeben könnte, verhindert es React.Fragment als TSX-Element verwendet werden.

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

Mir ist klar, dass wir Fragmente mit der Syntax <></> rendern können, aber die React-Dokumentation besagt, dass dies einfach auf <React.Fragment></React.Fragment> und dass dies die einzige Möglichkeit ist, Schlüssel zu einem Fragment hinzuzufügen .

Daher denke ich, dass der Typ von React.Fragment in etwas näher an React.ComponentType<{}> geändert werden sollte, wodurch es key und children Requisiten erhält.

Ich kann eine PR eröffnen, wenn die Leute mit diesem Vorschlag einverstanden sind.

Hilfreichster Kommentar

@uniqueiniquity Klingt gut. Ich habe eine Filiale bereit, wenn eine Reparatur in TS nicht möglich / praktikabel ist.

Alle 3 Kommentare

Danke, dass du das verstanden hast, @jgoz!
Ich denke, der bessere Ansatz könnte darin bestehen, dies auf der Seite von TypeScript zu beheben, anstatt den Typ von React.Fragment zu ändern, um das Verhalten des Compilers zu umgehen.
Ich werde das prüfen und sehen, ob das der beste Ansatz ist.

@uniqueiniquity Klingt gut. Ich habe eine Filiale bereit, wenn eine Reparatur in TS nicht möglich / praktikabel ist.

@jgoz Mach weiter und öffne die PR. Nach einigen Diskussionen hier klingt es so, als hätten Sie vorerst den richtigen Ansatz.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen