ts6to7 - codemod para automatizar a migração do TypeScript 5/6 → 7(tsgo)
(github.com/zi-gae)Ontem o TypeScript 7 foi lançado oficialmente. Com o compilador nativo (tsgo) reescrito em Go, ele ficou cerca de 10 vezes mais rápido, mas todas as opções de compilador que estavam obsoletas no TS5/6 foram removidas, e o valor padrão de strict também passou a ser true — então projetos com tsconfig antigo simplesmente não conseguem fazer o upgrade.
Criei um codemod para automatizar essa parte mecânica.
npx ts6to7 --dry # prévia (não grava nada)
npx ts6to7 # aplica
O que ele faz:
- modifica
tsconfig*.jsonno lugar — edita comjsonc-parser, então comentários e formatação são preservados - converte opções removidas para equivalentes do TS7:
target: es5→ES2015,module: umd/amd→ESNext,moduleResolution: node→NodeNext/Bundler,importsNotUsedAsValues→verbatimModuleSyntaxetc. - incorpora
baseUrlempaths - atualiza a dependência
typescriptpara^7.0.0 - se
strictnão estiver definido, fixa comofalse— arquivos que herdam outra configuração viaextendsnão são alterados, apenas recebem um aviso (porque a configuração base pode já definirstrict) - itens que não podem ser convertidos automaticamente com segurança (runtime exclusivo de ES5, ferramentas baseadas na API antiga do compilador como
ts-node/ts-jest, ausência do arraytypesetc.) são exibidos como uma checklist "requer verificação manual" com escopo por arquivo
Também é possível migrar direto do TypeScript 5: não é preciso passar pelo 6. Ele também limpa opções da era TS5, como ignoreDeprecations, e prepend em project references.
Também oferece suporte a monorepo (faz varredura em todos os pacotes).
A versão atual é 0.2.0. Se houver casos em que o tsconfig seja convertido incorretamente, será de grande ajuda se você abrir uma issue anexando esse tsconfig.
Ainda não há comentários.