Solução 02
Veja a diff no github
Extraindo um componente <Card>
genérico
- A primeira coisa é criar o componente
components/Card.tsx
.
Feito isso, vamos colocar o código no componente:
Como tipar o props.children
?
JSX.Element
: Não consegue receber arrays.JSX.Element | JSX.Element[]
; Não aceita strings.React.ReactChild
: Está deprecadoReact.ReactChild[]
: Está deprecadoReact.ReactNode
: É o que queremos.
Podemos então tipar dessa forma o componente <Card>
:
O tipo PropsWithChildren
Uma outra forma de fazer isso é usar um tipo utilitário que é o PropsWithChildren
:
Créditos para os @stevekinney em relação