Voltar ao blog
JavaScript & TypeScript5 min de leitura

O Ano em Que o JavaScript Parou de Se Fragmentar

O Node apagou a etapa de build do TypeScript, consertou o Date de vez, e a camada de runtime virou padrão de verdade da Ecma. Veja o que mudou, e por que "chato" é o melhor elogio possível.

Felício Santos

O Ano em Que o JavaScript Parou de Se Fragmentar

O Node acabou de apagar sozinho uma categoria inteira de ferramentas, e você sente isso na hora que pula o ts-node e o tsx e simplesmente roda um arquivo .ts direto. Isso não é um detalhezinho de DX. Por oito anos, "usar TypeScript" significava ser dono de uma etapa de build. Agora não significa mais.

TypeScript sem etapa de build

Funciona assim: o Node remove a sintaxe do TypeScript e transforma em espaços em branco antes de executar, uma técnica chamada type stripping, feita por um módulo pequeno chamado amaro. Os números de linha continuam certos, então seu stack trace ainda faz sentido. Isso não pega erro de tipo, essa parte continua sendo trabalho do seu editor e do CI, mas para scripts, ferramentas e boa parte do código de aplicação, a etapa de build que definiu "usar TypeScript" por oito anos virou opcional.

  • Type stripping remove os tipos, não os valida
  • Enums, decorators e namespaces com valores em tempo de execução ainda precisam de um compilador de verdade
  • Seu CI ainda deve rodar tsc --noEmit: isso é uma conveniência de runtime, não um substituto para checagem de tipos

O Date finalmente está sendo consertado

O Temporal, substituto do notoriamente quebrado Date do JavaScript, chegou ao Stage 4 do TC39 e já vem habilitado por padrão no Node. Ele lida com fusos horários, calendários e aritmética de forma correta, imutável, sem as armadilhas que todo dev JS aprendeu a contornar na marra. Se você já perdeu uma tarde por causa de um Date mutando silenciosamente, esse é o conserto que você espera desde 1995.

Uma especificação para o runtime, não só para a linguagem

Node, Deno, Bun e plataformas de edge como Cloudflare Workers costumavam expor APIs levemente diferentes para a mesma tarefa: ler uma request, lidar com um stream, rodar uma tarefa agendada. O grupo que define essa interoperabilidade, antes um esforço comunitário chamado WinterCG, virou uma trilha de padronização formal da Ecma. Isso é mais importante do que parece. A camada de runtime, não só a linguagem, agora tem um órgão de padronização de verdade, não um acordo de boa vontade entre fornecedores.

O que isso significa de verdade para você

Nada disso é sobre qual runtime ganha em benchmark. É sobre precisar de menos decisões para publicar JavaScript: menos ferramenta, menos código específico de runtime, menos armadilha embutida numa linguagem que todo mundo usa no primeiro dia. "Chato" é elogio aqui. A melhor notícia de infraestrutura de 2026 é que o JavaScript precisa de menos infraestrutura do que precisava antes. Se o seu time ainda mantém uma config de ts-node por hábito, esse hábito virou dívida técnica. O que mais você está rodando que ninguém revisa há um ano?

Curtiu?

Explore mais artigos de engenharia da CodaCrew.