Brincando com Typescript
Deu para perceber que a mudança não foi nada drástica. E se eu perguntar para você se esse componente abaixo é um componente escrito em JS ou em TS o que você diria?
Não dá para saber e tanto faz. Esse componente é idêntico se é escrito em JS ou TS.
Mas vamos brincar um pouco com a nossa recém convertida aplicação React com Typescript
O compilador TS é inteligente
… e isso é ótimo, porque quanto mais ele entende o nosso código, menos precisamos nos preocupar com o TS.
Por exemplo, vamos limpar nosso componente App.tsx
e deixá-lo assim:
Vamos brincar um pouco com TS nesse arquivo mesmo? Podemos, por exemplo, escrever isso:
Quais são os tipos dessas variáveis? É relativamente simples descobrir - basta a gente dar um hover em cima da variável, e o VSCode já mostra pra gente:
Deu para perceber que os tipos são, respectivamente, array de números, array de strings, e array de objeto com propriedade name
.
E isso vamos fazer todo o momento nesse curso (e provavelmente na vida). Como usuários do TS não precisamos “decorar” praticamente nada - é relativamente fácil encontrar os tipos que queremos usando o hover e “fuçando” um pouco.
Tipar, apenas em último caso
Percebemos que o TS é bastante inteligente para inferir tipos. No caso acima, não faz sentido escrevermos:
Não precisamos ser redundantes com TS, por isso a tipagem acima é totalmente desnecessária.
Agora, imagine que essa variável numbers
possa também receber números como strings. A partir desse momento será necessário que façamos uma tipagem:
O correto nesse caso é tiparmos e sermos explícitos: é um array que pode receber números ou strings:
O resumo da ópera
Não vamos entrar em muitos detalhes do básico de Typescript, já que não é o propósito desse workshop.
A mensagem que deve ficar é que: a maioria das coisas em uma aplicação React com TS não precisa ser tipada. E isso é ótimo!