Pular para o conteúdo

TypeScript 6.0: a versão de transição antes do compilador nativo

TypeScript 6.0 não é aquele tipo de release que chama atenção por uma sintaxe nova brilhando na vitrine. O ponto mais importante dela é outro: preparar o caminho para o TypeScript 7.0 e para o novo compilador nativo. Ou seja, é uma versão de transição. E versão de transição costuma ser exatamente aquela que muita gente ignora até o CI começar a reclamar.

A documentação oficial posiciona o TypeScript 6.0 como uma release pensada para refletir mudanças reais no ecossistema JavaScript: ambientes evergreen, uso mais comum de ESM e bundlers, presença quase universal de tsconfig.json e aumento do apetite por tipagem mais estrita. Em português menos release notes: o mundo mudou, e algumas configurações antigas começaram a fazer menos sentido.

O que o TypeScript 6.0 está preparando?

O grande pano de fundo é o TypeScript 7.0, que deve usar uma implementação nativa do compilador. A equipe do TypeScript anunciou o trabalho em um port nativo com a promessa de melhorar bastante performance de build, inicialização do editor e uso de memória. O TypeScript 6.0 aparece como a ponte entre o compilador atual e esse novo cenário.

Isso muda a forma de olhar para a atualização. Não é só “instala a versão nova e vê no que dá”. É uma boa oportunidade para limpar configurações antigas, revisar depreciações e deixar o projeto menos dependente de comportamentos que não devem seguir adiante.

TypeScript 6.0 é menos sobre novidade de linguagem e mais sobre arrumar a casa antes da mudança.

Um exemplo pequeno: DOM iterável ficou menos chato

Uma mudança prática é que os conteúdos de dom.iterable e dom.asynciterable agora ficam incluídos em dom. Antes, em alguns projetos, era comum precisar configurar dom.iterable para iterar sobre coleções do DOM sem brigar com o compilador.

// Antes do TypeScript 6.0, isso podia exigir "dom.iterable" no tsconfig.

for (const element of document.querySelectorAll("div")) {
  console.log(element.textContent);
}

No TypeScript 6.0, essa situação fica mais simples quando você já usa lib: ["dom"]. Parece pequeno, mas é o tipo de ajuste que reduz ruído em configuração. E ruído em configuração, em projeto TypeScript, é praticamente uma espécie nativa.

O ponto de atenção está no tsconfig

Algumas mudanças e depreciações podem exigir ajustes no tsconfig.json. A documentação destaca, por exemplo, a recomendação de usar um array types explícito, como ["node"], em vez de depender de comportamento amplo demais. Isso melhora previsibilidade e performance, especialmente em projetos maiores.

{
  "compilerOptions": {
    "types": ["node"],
    "rootDir": "./src",
    "outDir": "./dist"
  }
}

Esse tipo de configuração pode parecer detalhe até começar a aparecer erro de tipo estranho, identificador sumindo ou arquivo sendo emitido em pasta inesperada. O TypeScript está ficando mais explícito, e isso combina com a maturidade do ecossistema: menos mágica, mais contrato claro.

Devo atualizar correndo?

Não precisa transformar isso em corrida. Mas vale criar uma branch, subir para TypeScript 6.0, rodar tsc --noEmit, verificar warnings e observar onde o projeto depende de configuração antiga. Para monorepo, biblioteca ou projeto com build complexo, esse teste é ainda mais importante.

npm install typescript@latest --save-dev
npx tsc --noEmit

Também vale evitar um erro comum: atualizar só porque “o 7 vai ser mais rápido”. Performance é ótima, mas migração bem feita começa antes da versão mais empolgante chegar. Se o TypeScript 6.0 já está sinalizando o que vai sair do caminho, ignorar os avisos agora é só terceirizar dor para o futuro.

Conclusão

TypeScript 6.0 é uma versão importante justamente por não tentar ser espetáculo. Ela prepara o terreno para uma mudança maior, ajusta expectativas do ecossistema e força projetos a ficarem mais explícitos sobre configuração, ambiente e tipos globais.

Às vezes, a versão que parece menos divertida é a que evita o caos quando a versão divertida finalmente chega.

Fontes

"Loop"

"Loop"

Lucas “Loop” Torres é desenvolvedor web e escreve sobre JavaScript, TypeScript, PHP e as pequenas decisões que fazem um projeto sair do “funciona na minha máquina” para algo minimamente decente. Ganhou o apelido na faculdade depois de alguns loops infinitos memoráveis e, desde então, tenta transformar bugs, ferramentas e tendências da web em conteúdo útil para quem também vive entre commits, café e deploys de última hora.View Author posts