Definitelytyped: [@ types / react]: React.Fragment não tem nenhuma construção ou assinatura de chamada

Criado em 3 dez. 2017  ·  3Comentários  ·  Fonte: DefinitelyTyped/DefinitelyTyped

  • [x] Tentei usar o pacote @types/react e tive problemas.
  • [x] Tentei usar a versão estável mais recente do tsc. https://www.npmjs.com/package/typescript
  • [x] Eu tenho uma pergunta que é inadequada para StackOverflow . (Por favor, faça quaisquer perguntas apropriadas lá).
  • [x] [Mencione] (https://github.com/blog/821-mention-somebody-they-re-notified) os autores (veja Definitions by: em index.d.ts ) para que eles possam responder.

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

Houve alguma discussão sobre o tipo apropriado de React.Fragment em # 21146, mas enquanto symbol | number pode refletir com precisão o tipo interno de React para Fragment , ele evita React.Fragment de ser usado como um 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>

Sei que podemos renderizar fragmentos usando a sintaxe <></> , mas os documentos do React afirmam que isso simplesmente desafe para <React.Fragment></React.Fragment> e que essa é a única maneira de adicionar chaves a um fragmento .

Portanto, acho que o tipo de React.Fragment deve ser alterado para algo mais próximo de React.ComponentType<{}> , o que resultará em key e children props.

Posso abrir um PR se as pessoas concordarem com esta proposta.

Comentários muito úteis

@uniqueiniquity Parece bom. Eu tenho um branch pronto para ir se consertar no TS não for possível / prático.

Todos 3 comentários

Obrigado por ouvir isso, @jgoz!
Acho que a melhor abordagem seria corrigirmos isso do lado do TypeScript, em vez de alterar o tipo de React.Fragment para contornar o comportamento do compilador.
Vou analisar isso e ver se essa é a melhor abordagem.

@uniqueiniquity Parece bom. Eu tenho um branch pronto para ir se consertar no TS não for possível / prático.

@jgoz Vá em frente e abra o PR. Depois de alguma discussão aqui, parece que você tem a abordagem certa no momento.

Esta página foi útil?
0 / 5 - 0 avaliações