11 pontos por dlwocks31 5 일 전 | Ainda não há comentários. | Compartilhar no WhatsApp

Lançado o TypeScript 7.0 Beta - TS cerca de 10 vezes mais rápido com port nativo em Go

  • Nova implementação nativa com o compilador TypeScript existente portado para Go
  • Embora seja “beta”, é destacado como estável o suficiente para já ser testado em trabalhos do dia a dia e em CI
  • A nova base de código não é uma reescrita (rewrite), mas sim um port sistemático da implementação existente
  • A lógica de verificação de tipos é estruturalmente igual à do TypeScript 6.0
  • Desempenho que às vezes é cerca de 10 vezes mais rápido em comparação com o TypeScript 6.0
  • Baseado no desempenho de código nativo + paralelização com memória compartilhada
  • Já em uso em codebases com milhões de LOC, internas e externas à Microsoft
  • Testado antecipadamente com Bloomberg, Canva, Figma, Google, Linear, Notion, Slack, Vercel e outras
  • Além da CLI, a experiência no editor também foi melhorada para ficar mais leve e rápida

Como usar

  • No momento, a instalação é feita como pacote separado
    • npm install -D @typescript/native-preview@beta
  • Execute tsgo no lugar do tsc atual
    • npx tsgo --version
  • No futuro, a versão estável deverá voltar a ser distribuída com o pacote typescript e o entrypoint tsc

Uso em paralelo com o TypeScript 6.0

  • O 7.0 Beta é fornecido como @typescript/native-preview + tsgo
  • É possível executar tsc e tsgo lado a lado e comparar
  • Na versão estável, o TS7 voltará a usar o nome tsc
  • Também será oferecido o pacote @typescript/typescript6 para compatibilidade com o TS6
  • Ferramentas existentes que dependem da API do TypeScript poderão continuar usando a API do TS6 por enquanto

Limitações importantes

  • O 7.0 Beta está próximo de estar pronto para produção, mas ainda não há uma API programática estável
  • A API estável é esperada no mínimo após o TypeScript 7.1, com meta para daqui a alguns meses
  • Ferramentas/plugins que dependem diretamente da API do TypeScript exigem cuidado na transição

Paralelização

  • Paralelização em várias etapas, como parsing, verificação de tipos e emit
  • Adicionada a opção --checkers para ajustar o número de workers de verificação de tipos
  • Adicionada a opção --builders para paralelizar builds com project references
  • Adicionada a opção --singleThreaded para execução em thread única
  • O efeito é grande em codebases extensas e monorepos, mas aumentar o paralelismo também pode elevar o uso de memória

Compatibilidade com base no TypeScript 6.0

  • O TypeScript 7.0 tem como objetivo compatibilidade com o comportamento de verificação de tipos/CLI do TypeScript 6.0
  • O objetivo é que códigos que compilam limpos no TS6 também compilem da mesma forma no TS7
  • Porém, novos valores padrão do TS6 e a limpeza de recursos obsoletos também são aplicados
  • Mudanças nos valores padrão de strict, module, rootDir, types etc. podem ser percebidas em projetos existentes
  • Em especial, as mudanças em rootDir e types precisam ser verificadas na migração
  • Para projetos que usam configurações antigas de target/module ou opções deprecated, é recomendado primeiro passar pela migração para o TS6

Mudanças em JavaScript/JSDoc

  • O suporte a JS foi reorganizado para ficar mais consistente com a forma de análise de arquivos TypeScript
  • Foram removidos tratamentos especiais para parte da sintaxe em estilo JSDoc/Closure e para padrões antigos de JS
  • Codebases baseadas em JS + JSDoc exigem verificação separada

Suporte de editor

  • Disponível a extensão TypeScript Native Preview para VS Code
  • Como usa a mesma base da CLI, o editor também recebe os mesmos ganhos de desempenho
  • Suporte a auto-import, hover, inlay hints, code lens, JSX linked editing etc.
  • Como é baseado em LSP, também é fácil de aproveitar em outros editores/ferramentas modernos

Próximos planos

  • Está prevista uma implementação mais eficiente de --watch
  • Está previsto trabalho para alcançar parity no declaration emit de arquivos JS
  • Está previsto reduzir a diferença de recursos no editor
  • A API programática estável virá após o TypeScript 7.1
  • A versão estável do TypeScript 7.0 é esperada em cerca de 2 meses
  • O RC deve ser lançado algumas semanas antes

Ainda não há comentários.

Ainda não há comentários.