Voltar ao Blog
    TypeScript
    Performance

    TypeScript 7: Guia Real de Migração Para o Compilador Nativo em Go

    O TS 7 é 8 a 12x mais rápido e o 7.0.2 já é a versão latest no npm. O problema: typescript-eslint ainda exige TS < 6.1. Como adotar o compilador nativo hoje, sem quebrar o toolchain.

    Publicado em ·10 min de leitura·por Bernardo Gomes

    Em 8 de julho de 2026, a Microsoft anunciou o TypeScript 7: o port nativo do compilador em Go, quase três anos depois da revelação do projeto. O 7.0.2 — primeira versão estável da linha 7 — já é a dist-tag 'latest' no npm, e builds diários da 7.1 já circulam. Quase dois meses depois, o pânico da migração virou checklist. Este post é o checklist.

    ℹ️

    Fonte: devblogs.microsoft.com — 'Announcing TypeScript 7.0' (08/07/2026). Benchmarks oficiais em codebases open source: VS Code 11,9x, Sentry 8,9x, Bluesky 8,7x, Playwright 8,7x e tldraw 7,7x de speedup em build completo.

    Os números que importam

    • Build completo 8-12x mais rápido: VS Code caiu de 125,7s para 10,6s; Sentry de 139,8s para 15,7s
    • Memória 6-26% menor nos mesmos projetos: o Bluesky foi de 1,8GB para 1,3GB
    • Primeiro erro no editor (abrir o projeto até ver o squiggle): 17,5s → 1,3s no codebase do VS Code
    • Loop de agentes de IA: o tsc é a ferramenta mais chamada por IA em automação de PRs — 8x de feedback loop muda o custo de cada iteração

    O que mudou tecnicamente

    O executável tsc virou binário nativo com multithreading e memória compartilhada — npm install -D typescript entrega o novo compilador como qualquer outro release. O language server abandonou o protocolo próprio do tsserver e adota LSP, o mesmo protocolo do rust-analyzer e do gopls. O time portou a estrutura e a lógica do código original fielmente para manter resultados compatíveis entre os dois compiladores — o que significa, na prática: mesmos erros, mesma semântica, velocidade diferente.

    ⚠️

    Editor: o VS Code usa uma extensão dedicada para o TS 7 — o suporte via tsserver legado não ativa sozinho; o Visual Studio habilita automaticamente por workspace. Se seu editor ainda roda o TS 6, você está com 1x de velocidade. Configure a extensão antes de culpar o compilador.

    O elefante na sala: o ecossistema ainda está no TS 6

    O typescript-eslint — peça central de qualquer setup sério de lint type-aware — declara no peer range 'typescript >=4.8.4 <6.1.0'. Ou seja: o 7.0.2 atual não é suportado pelas regras que exigem informação de tipos, e o mesmo vale para ferramentas que consomem a API interna do compilador (ts-jest, transformers customizados, alguns plugins de bundler). O conselho real de adoção em agosto de 2026 é: compile com 7, lint com 6 — os dois vivem lado a lado sem conflito.

    yaml
    # pnpm-workspace.yaml — setup real deste site
    # TS 6.0.3 pinado porque o typescript-eslint declara peer <6.1.0,
    # enquanto o build do projeto já roda no compilador nativo
    overrides:
      typescript: ^6.0.3
    
    # Quando o typescript-eslint publicar peer range com >=7,
    # a migração é deletar estas duas linhas

    Neste portfólio, o override acima existe exatamente por isso: o pin do TS 6 mantém o lint type-aware estável enquanto o ecossistema alcança o 7. É uma decisião consciente de renunciar temporariamente ao ganho de build em troca de zero surpresa no CI — e a saída do pin é uma linha, não um projeto.

    Plano de migração em 5 passos

    • Inventário: liste tudo que consome o TypeScript no repo — eslint, ts-jest/vitest, ts-node, transformers, plugins do bundler
    • Shadow job no CI: rode o tsc 7 em paralelo com o build atual e compare erros e saídas por uma semana
    • Editor primeiro: instale a extensão do TS 7 — ganho imediato de até 12x no loop local, com risco zero para o build
    • Build com 7, lint com 6: mantenha o typescript no range aceito pelo typescript-eslint até o peer range atualizar
    • Remova o pin: quando suas ferramentas declararem suporte a 7, delete o override e rode a suíte inteira
    💡

    O ganho mais subestimado não é humano: agentes de IA chamam o compilador dezenas de vezes por tarefa. Um tsc 8x mais rápido encurta o loop de cada iteração do Claude Code ou Cursor — migrar o toolchain virou investimento em produtividade de IA.