Definitelytyped: [@types/react]: React.Fragment tidak memiliki konstruksi atau tanda tangan panggilan

Dibuat pada 3 Des 2017  ·  3Komentar  ·  Sumber: DefinitelyTyped/DefinitelyTyped

  • [x] Saya mencoba menggunakan paket @types/react dan mengalami masalah.
  • [x] Saya mencoba menggunakan tsc versi stabil terbaru. https://www.npmjs.com/package/typescript
  • [x] Saya punya pertanyaan yang tidak pantas untuk StackOverflow . (Silakan ajukan pertanyaan yang sesuai di sana).
  • [x] [Sebutkan](https://github.com/blog/821-mention-somebody-they-re-notified) penulisnya (lihat Definitions by: di index.d.ts ) agar mereka dapat menanggapi.

    • Penulis: @uniqueinquity , @tkrotoff , @vsiao ,

Ada beberapa diskusi tentang tipe yang tepat dari React.Fragment di #21146, tetapi sementara symbol | number mungkin secara akurat mencerminkan tipe React internal untuk Fragment , itu mencegah React.Fragment dari digunakan sebagai elemen 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>

Saya menyadari bahwa kita dapat merender fragmen menggunakan sintaks <></> , tetapi dokumen React menyatakan bahwa ini hanya menghilangkan gula menjadi <React.Fragment></React.Fragment> dan ini adalah satu-satunya cara untuk menambahkan kunci ke fragmen .

Oleh karena itu, saya pikir jenis React.Fragment harus diubah menjadi sesuatu yang lebih dekat ke React.ComponentType<{}> , yang akan memberikannya key dan children props.

Saya bisa membuka PR jika orang setuju dengan proposal ini.

Komentar yang paling membantu

@uniqueinquity Kedengarannya bagus. Saya memiliki cabang yang siap digunakan jika memperbaikinya di TS tidak memungkinkan/praktis.

Semua 3 komentar

Terima kasih telah menangkap ini, @jgoz!
Saya pikir pendekatan yang lebih baik mungkin bagi kita untuk memperbaikinya di sisi TypeScript, daripada mengubah jenis React.Fragment untuk meretas perilaku kompiler.
Saya akan melihat ini dan melihat apakah itu pendekatan terbaik.

@uniqueinquity Kedengarannya bagus. Saya memiliki cabang yang siap digunakan jika memperbaikinya di TS tidak memungkinkan/praktis.

@jgoz Ayo buka PRnya. Setelah beberapa diskusi di sini sepertinya Anda memiliki pendekatan yang tepat untuk saat ini.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat