Oi Alexandre, tudo bem?
Desculpe a demora em retornar.
Entendo que pode ser frustrante quando o código não funciona como deveria, mas vamos tentar entender o que está acontecendo.
Pelo erro apresentado, podemos ver que o problema está na linha 8 do arquivo botao/index.tsx, mais especificamente na propriedade children de this.props. O erro diz que a propriedade children não existe no tipo Readonly<{}>, ou seja, o TypeScript não reconhece a propriedade children nessa classe.
Uma possível solução para esse problema seria definir um tipo para as propriedades da classe Botao. Você pode fazer isso utilizando a interface Props (ou outro nome de sua escolha), por exemplo:
interface Props {
children: React.ReactNode;
}
class Botao extends React.Component<Props> {
render() {
return (
<button className={style.botao}>
{this.props.children}
</button>
)
}
}
Nessa definição, estamos indicando que a classe Botao tem uma propriedade children do tipo React.ReactNode. O React.ReactNode é um tipo genérico do TypeScript que aceita qualquer coisa que possa ser renderizada pelo React, incluindo strings, números, componentes e elementos.
Outra alternativa seria usar o React.FC, que é uma abreviação de "Function Component". Com o React.FC, não precisamos criar uma interface para as propriedades, pois ela já é inferida pelo TypeScript. O código ficaria assim:
const Botao: React.FC = ({ children }) => (
<button className={style.botao}>
{children}
</button>
);
Nesse caso, estamos definindo uma constante Botao do tipo React.FC, que recebe as propriedades desestruturadas (no caso, só children) e retorna o JSX com o botão.
Espero que essa explicação tenha sido útil e clara para você.
Um abraço e bons estudos.