Definitelytyped: [@ type / react]: React.Fragment no tiene ninguna construcción o signaturas de llamada

Creado en 3 dic. 2017  ·  3Comentarios  ·  Fuente: DefinitelyTyped/DefinitelyTyped

  • [x] Intenté usar el paquete @types/react y tuve problemas.
  • [x] Intenté usar la última versión estable de tsc. https://www.npmjs.com/package/typescript
  • [x] Tengo una pregunta que no es apropiada para StackOverflow . (Haga las preguntas pertinentes allí).
  • [x] [Mencione] (https://github.com/blog/821-mention-somebody-they-re-notified) a los autores (consulte Definitions by: en index.d.ts ) para que puedan responder.

    • Autores: @uniqueiniquity , @tkrotoff , @vsiao ,

Hubo cierta discusión sobre el tipo adecuado de React.Fragment en # 21146, pero aunque symbol | number podría reflejar con precisión el tipo de React interno para Fragment , evita React.Fragment de ser utilizado como un elemento 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>

Me doy cuenta de que podemos renderizar fragmentos usando la sintaxis <></> , pero los documentos de React establecen que esto simplemente elimina el azúcar en <React.Fragment></React.Fragment> y que esta es la única forma de agregar claves a un fragmento .

Por lo tanto, creo que el tipo de React.Fragment debería cambiarse a algo más cercano a React.ComponentType<{}> , lo que le dará key y children props.

Puedo abrir un PR si la gente está de acuerdo con esta propuesta.

Comentario más útil

@uniqueiniquity Suena bien. Tengo una rama lista para funcionar si arreglarla en TS no es posible / práctico.

Todos 3 comentarios

¡Gracias por escuchar esto, @jgoz!
Creo que el mejor enfoque podría ser que arreglemos esto del lado de TypeScript, en lugar de cambiar el tipo de React.Fragment para modificar el comportamiento del compilador.
Examinaré esto y veré si ese es el mejor enfoque.

@uniqueiniquity Suena bien. Tengo una rama lista para funcionar si arreglarla en TS no es posible / práctico.

@jgoz Adelante, abre el PR. Después de un poco de discusión aquí, parece que tiene el enfoque correcto por el momento.

¿Fue útil esta página
0 / 5 - 0 calificaciones