TypeScript 7.1 beta: compatibilidade da toolchain vem antes do benchmark
A volta das APIs e os content mappers ajudam integrações do compilador nativo, mas a migração exige comparar diagnósticos, editor e CI.
O TypeScript 7.1 beta recupera APIs programáticas do compilador nativo escrito em Go e introduz content mappers para integrar formatos como Vue e Svelte.[10] Segundo a InfoQ, a retirada dessa superfície no 7.0 havia mantido diversas ferramentas dependentes do TypeScript 6.[10] A novidade é relevante porque uma migração de compilador envolve todo o ecossistema ao redor dele, não apenas o tempo de uma execução.
O que muda para quem desenvolve
A API retorna em entradas específicas, como typescript/sync, typescript/async, typescript/fs e typescript/ast, em lugar do módulo monolítico anterior.[10] Snapshots reutilizáveis representam alterações incrementais sem reconstruir todo o estado a cada edição.[10] Para autores de ferramentas, isso exige examinar a integração efetivamente usada, não só trocar a versão no manifesto.
Os content mappers produzem uma visão virtual compreendida pelo compilador e preservam o mapeamento de diagnósticos para os arquivos originais.[10] Eles executam em processos separados e precisam de ativação explícita.[10] O Vue Language Tools v4 alpha já experimenta a abordagem com @vue/content-mapper.[10] Beta do compilador e alpha de integração não devem ser tratados como uma cadeia estabilizada.
Os ganhos publicados variam: no painel Directus, a verificação caiu de 14,19 para 3,10 segundos; no benchmark de documentação MUI, de 22,2 para 11,9 segundos.[10] Esses são casos relatados, não uma expectativa aplicável a toda base.
Como aplicar
Faça um experimento em branch separada, com as mesmas fontes e dependências congeladas. Registre tempo, memória e conjunto de diagnósticos nas versões comparadas. Separe uma execução inicial das subsequentes e declare as condições de cada medição.
Inclua casos de erro conhecidos, arquivos de framework e plugins que dependem da API do compilador. Um resultado rápido que deixa de reportar uma falha relevante não deve ser aprovado como melhoria.
A orientação de migração reproduzida pela matéria é passar pelo TypeScript 6 antes do 7 e manter as versões em paralelo enquanto integrações de frameworks não estabilizam.[10] Se optar por compilador novo no CI e anterior no editor, estabeleça uma comparação periódica dos diagnósticos e um responsável por resolver divergências.
Cuidados e limites
A reportagem menciona um problema aberto em que salvar uma configuração observada pelo mapper pode deixar tipos desatualizados até reiniciar o language server.[10] Acrescente esse cenário ao piloto antes de interpretar o silêncio do editor como ausência de erro.
Também trate mappers como plugins de build, com revisão de origem e permissões. A decisão de produção deve combinar compatibilidade, diagnósticos confiáveis e ganho medido na própria base. Um benchmark atraente pode justificar o experimento. Não substitui o resultado dele.
Fonte
[10] Fonte: InfoQ