4 pontos por GN⁺ 2025-03-25 | 4 comentários | Compartilhar no WhatsApp
  • 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 como string, 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
    Publicidade
  • Exemplo 4: case ausente em uma instrução switch
    • Ocorre erro se nem todos os case da instrução switch forem tratados
    • Também ocorre erro quando a exigência de que o valor restante seja do tipo never é violada
  • 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
Publicidade

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.json pode ser complexa
    • Configurar da forma mais rigorosa possível pode aliviar esse problema
    • Com o type stripping mais bem definido, o papel do tsconfig.json está 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
Publicidade

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

4 comentários

 
skrevolve 2025-03-26

Há vantagens em ter tipagem forte; no C++ também é assim.

 
slowandsnow 2025-03-25

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

 
bungker 2025-03-25

As equipes da nossa empresa tocaram projetos dizendo que JavaScript já era suficiente, mas agora estão todas migrando para TypeScript.

 
tsboard 2025-03-25

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.