ts6to7 - codemod para automatizar la migración de TypeScript 5/6 → 7(tsgo)
(github.com/zi-gae)Ayer se lanzó oficialmente TypeScript 7. Con el compilador nativo reescrito en Go (tsgo), es unas 10 veces más rápido, pero se eliminaron todas las opciones del compilador que estaban deprecated en TS5/6 y el valor predeterminado de strict también cambió a true; por eso, los proyectos con tsconfig antiguos simplemente no pueden actualizarse.
Creé un codemod que automatiza esa parte mecánica.
npx ts6to7 --dry # Vista previa (no escribe nada)
npx ts6to7 # Aplicar
Qué hace:
- Modifica tsconfig*.json en el lugar: edita con jsonc-parser, por lo que se conservan comentarios y formato
- Convierte opciones eliminadas a equivalentes de TS7: target: es5 → ES2015, module: umd/amd → ESNext, moduleResolution: node → NodeNext/Bundler, importsNotUsedAsValues → verbatimModuleSyntax, etc.
- Pliega baseUrl dentro de paths
- Sube la dependencia de typescript a ^7.0.0
- Si strict no estaba configurado, lo fija en false; los archivos que heredan otra config con extends no se cambian y solo emiten una advertencia (porque la config base podría ya configurar strict)
- Lo que no se puede convertir automáticamente de forma segura (runtimes solo para ES5, herramientas basadas en la API antigua del compilador como ts-node/ts-jest, arrays types faltantes, etc.) se imprime como una checklist de "requiere revisión manual" con alcance por archivo
También se puede migrar directamente desde TypeScript 5: no hace falta pasar por 6. También limpia opciones de la era TS5 como ignoreDeprecations y prepend en project references.
También soporta monorepos (escanea todos los paquetes).
Actualmente está en 0.2.0. Si hay casos en los que un tsconfig se convierte mal, sería de gran ayuda que lo reporten en un issue adjuntando ese tsconfig.
Aún no hay comentarios.