Vamos começar criando o arquivo src/components/HeaderCard.tsx. Por enquanto vamos colocar alguns tipos apenas para deixarmos o compilador feliz.
Mas será que não podemos melhorar nos tipos das props aqui?
Vamos usar a técnica do “hover” para tentar inferir o tipo de um event handler?
Vamos ver:
Veja que o tipo esperado em um onClick é um MouseEventHandler que recebe como argumento (generics) o elemento clicado - nesse caso um HTMLButtonElement.
Vamos usar isso então para tipar nossas props:
Pronto, bem melhor. E nem precisamos “decorar” o tipo para colocar aqui! 😎
Criando um botão que troca cor do fundo
Vamos agora para a segunda parte do nosso exercício, que é criar um botão que troca aleatoriamente apenas o fundo.
Em primeiro lugar vamos adicionar o botão:
Agora, vamos criar outra função que deverá ser passada do App até o novo botão: