Como eu vendo TypeScript (Sales Pitch)
(2ality.com)- TypeScript é uma linguagem que adiciona informações de tipo ao JavaScript
- As informações de tipo são removidas antes da execução pelo engine de JS → ou seja, é necessário trabalho adicional no processo de escrita e deploy
- Esse trabalho adicional vale a pena? → Vale muito a pena
Autocompletar e detecção de erros durante a edição do código
- TypeScript oferece autocompletar e detecção de erros ao escrever código
- Exemplo 1: erros de digitação, tipo incorreto e argumentos ausentes
- Mostra erro ao acessar uma propriedade que não existe. Ela também não aparece no autocompletar
- Mostra erro ao chamar um método em um tipo incorreto
- Mostra erro quando um argumento obrigatório está ausente
- Mostra erro ao passar um argumento de tipo incorreto
- Exemplo 2: erro no valor de retorno de função
- Mostra erro se o valor retornado não corresponder ao tipo definido
- Por exemplo, se o valor de retorno for
string[], mas o tipo de retorno tiver sido definido comostring, ocorre um erro
- Exemplo 3: erro ao lidar com propriedade opcional
- Ao usar uma propriedade opcional como valor de retorno, mostra erro se o tipo não corresponder
- Exemplo 4: case ausente em uma instrução switch
- Ocorre erro se nem todos os
caseda instrução switch forem tratados - Também ocorre erro quando a exigência de que o valor restante seja do tipo
neveré violada
- Ocorre erro se nem todos os
- Exemplo 5: erro ao tratar casos específicos no código
- Ao fazer ramificações com base em determinados valores, casos incorretos geram erro
- Por exemplo, ocorre erro ao acessar uma propriedade que não existe em um tipo específico de objeto
Especificar parâmetros de função e tipos de retorno → serve como boa documentação
- TypeScript permite especificar os parâmetros das funções e seus tipos de retorno
- Melhora a compreensão do código e a manutenibilidade
- Fica claro quais são os tipos dos argumentos e dos valores retornados por uma função
Reforço no refatoramento de código
- TypeScript ajuda a realizar refatorações de código com mais segurança
- Ao renomear um método, a mudança é refletida com segurança em todo o código conectado
- É possível entender com precisão como o código está interligado
Usar TypeScript está ficando mais fácil
- Executar e compilar TypeScript ficou mais fácil
- É possível executar TypeScript diretamente em plataformas como Node.js, Deno e Bun
- Bundlers como o Vite oferecem suporte nativo a TypeScript
- Introdução da técnica de type stripping → remove apenas as informações de tipo, sem outras transformações
- Melhorias na publicação de pacotes npm → suporte à geração automática de JavaScript e arquivos de declaração de tipos
Desvantagens do TypeScript
- Existe uma curva de aprendizado → é mais complexo que JavaScript
- Podem surgir problemas quando alguns pacotes npm não têm definições de tipo ou as têm incorretamente
- A configuração do
tsconfig.jsonpode ser complexa- Configurar da forma mais rigorosa possível pode aliviar esse problema
- Com o type stripping mais bem definido, o papel do
tsconfig.jsonestá ficando mais simples
FAQ sobre TypeScript
O código TypeScript não fica pesado?
- TypeScript permite escrever código com o mínimo de definições de tipo graças à inferência de tipos
- Ele pode ser útil mesmo sem anotações de tipo complexas
O TypeScript quer transformar JavaScript em C# ou Java?
- No começo, foram adicionados recursos como classes, módulos e enums para complementar o que faltava no JavaScript
- Atualmente, TypeScript está sendo aprimorado de acordo com o padrão ECMAScript
- Recursos que não existem em JavaScript não são adicionados ao TypeScript
TypeScript só dá suporte à programação orientada a objetos (OOP)?
- TypeScript também oferece bom suporte a padrões de programação funcional
- Por exemplo,
discriminated unioné frequentemente usado em programação funcional
É realmente necessário aprender definições de tipos complexas?
- Para a maioria dos usos de TypeScript, definições de tipos simples já são suficientes
- Definições de tipos complexas são úteis ao criar bibliotecas, mas não são necessárias no uso comum
Quanto tempo leva para aprender TypeScript?
- Os conceitos básicos podem ser aprendidos em um dia
- Já no dia seguinte é possível escrever e depurar código simples
- Tipos complexos e recursos avançados podem ser aprendidos gradualmente
Leitura adicional
- What is TypeScript?
- Tackling TypeScript (gratuito)
4 comentários
Há vantagens em ter tipagem forte; no C++ também é assim.
Usar JavaScript -> TypeScript dá a sensação de desenvolver de olhos fechados e de repente abrir os olhos. A segurança que os tipos trazem, o autocompletar e a combinação com o Copilot
As equipes da nossa empresa tocaram projetos dizendo que JavaScript já era suficiente, mas agora estão todas migrando para TypeScript.
Em vez de substituir o JavaScript, ele o complementa; acho que esse foi o fator de sucesso que fez o TypeScript vencer o Dart. Realmente sinto que foi uma ótima decisão ter aprendido isso.