TypeScript 5.5 foi lançado: o que mudou na nova versão

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

TypeScript 5.5 foi lançado: o que mudou na nova versão



Em 14 de junho de 2024, a equipe da Microsoft lançou oficialmente o TypeScript 5.5 — uma das versões mais significativas do popular tipificador estático para JavaScript. Na nova atualização, os desenvolvedores receberam não apenas correções de bugs, mas também uma série de recursos poderosos que simplificam a escrita de código e aumentam o desempenho. Vamos analisar as principais novidades.



Declarações Isoladas (Isolated Declarations)

A novidade mais esperada do TypeScript 5.5 é o suporte experimental ao modo Isolated Declarations. Agora o compilador pode gerar arquivos de declaração (.d.ts) para cada módulo de forma independente, sem a necessidade de carregar todo o projeto. Isso é especialmente útil para grandes monorepositórios e builds, onde a aceleração do compilador se torna crítica. O modo pode ser ativado através da flag --isolatedDeclarations no tsconfig.json.



  • Aceleração de build: a compilação isolada de tipos permite paralelizar o processo e reduzir o tempo de espera.
  • Conveniência para bibliotecas: autores de pacotes agora podem gerar tipos atualizados mais rapidamente.
  • Compatibilidade reversa: o novo modo não quebra o código existente, podendo ser implementado gradualmente.


Controle de vazamentos de memória em closures

O TypeScript 5.5 aprendeu a alertar sobre potenciais vazamentos de memória relacionados a closures. O compilador agora analisa se a closure está retendo referências desnecessárias a objetos grandes ou elementos DOM. Por exemplo:

function setupHandler() {    const largeData = new Array(1000000).fill('x');    document.getElementById('btn')?.addEventListener('click', () => {        console.log('clicado');        // Anteriormente o compilador não alertava que largeData permanecia na memória    });}

Agora o TypeScript emitirá um aviso se detectar que a closure captura variáveis que não são usadas dentro dela, mas permanecem na memória devido à vinculação ao manipulador. Isso ajuda a escrever código mais eficiente sem a necessidade de profiling manual.



Inferência de tipos aprimorada para arrays e desestruturação

Na nova versão, o mecanismo de inferência de tipos foi significativamente aprimorado. O TypeScript 5.5 passou a determinar com mais precisão os tipos na desestruturação de arrays e tuplas. Por exemplo, ao trabalhar com APIs que retornam tuplas, o compilador agora reconhece corretamente cada elemento:

function fetchUser() {    return [1, 'Alice'] as const;}const [id, name] = fetchUser(); // id: number, name: string (anteriormente era union)

Isso elimina a necessidade de anotações manuais extras e torna o código mais limpo.



Determinação automática de tipos a partir de JSDoc

Ao usar allowJs e verificar arquivos JavaScript, o TypeScript 5.5 aprendeu a inferir automaticamente tipos a partir de comentários JSDoc, mesmo em casos complexos — como para callbacks com múltiplos parâmetros. Isso é especialmente relevante para projetos que estão migrando gradualmente de JS para TS.



Outras melhorias e correções

  • Otimização de velocidade: até 15% de aceleração na compilação para grandes projetos graças ao cache de resultados intermediários.
  • Novas flags: --noUncheckedSideEffectImports proíbe imports sem efeitos colaterais se não forem usados explicitamente.
  • Correção de bugs: mais de 80 erros corrigidos, relacionados

Recommended Libraries