Resolvi postar sobre um assunto já marcado como solucionado aqui no forum porque a solução marcada nao é a ideal. Ao escrever o componente Botão (inicialmente como Class Component), eu e alguns colegas que perguntaram antes tivemos um erro que o props.children não é reconhecido (TS2339: Property 'children' does not exist on type 'Readonly<{}>'.). Provavelmente o professor rodou uma versão anterior do react que já inferia um props.children para o class component, porém aparentemente isto não ocorre mais.
A solução apontada aqui no forum seria tipar o botão como React.Component, porém isso não é boa prática e acaba com a vantagem do typescript de nos avisar quando usamos algo não esperado aqui.
Na verdade a solução aparece no final do curso, quando o professor refatora para function component ele teve que incluir o children na interface props. É a mesma solução que funciona aqui:
class Botao extends React.Component<{children?: React.ReactNode}> {
Assim nesse ponto é possível usar o tipo que já vem no React PropsWithChildren
class Botao extends React.Component<React.PropsWithChildren<{/*Outras props aqui*/}>> {
Enfim, minha sugestão é incluir uma nota na aula 4 parte 2. Se for só uma questão de configuração, também vale uma nota.
Versões no meu package.json:
"@types/react": "^18.0.27",
"@types/react-dom": "^18.0.10",
"react": "^18.2.0",
"react-dom": "^18.2.0",
"react-scripts": "5.0.1",