Ir para o conteúdo principal
Voltar aos artigos

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.

·3 min de leitura·4 visualizações

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

Continue lendo