TypeScript de Cero a Experto / Proyectos + retos
Migrar JavaScript a TypeScript: la estrategia
Último módulo, y arranca con una habilidad que usarás toda tu carrera: convertir un proyecto JavaScript existente a TypeScript. No se hace de golpe ni con pánico —se hace por pasos, de "todo permitido" a "estricto"—. Hoy aprendes la estrategia para migrar sin detener el proyecto ni ahogarte en errores rojos.
Renovar la casa habitándola
El puente: allowJs y checkJs
TypeScript puede convivir con JavaScript. Dos flags lo habilitan y te dejan migrar gradualmente:
{
"compilerOptions": {
"allowJs": true, // permite que .js y .ts coexistan en el proyecto
"checkJs": false, // aún NO revisa los .js (los toleramos sin tipos)
"strict": false // arrancamos suave; el estricto llega al final
}
}allowJs: true deja que tus archivos .js existentes vivan junto a los .ts nuevos
—la app sigue corriendo mientras migras—. checkJs: false significa "todavía no me
quejes de los .js". Con esto, empiezas a agregar archivos .ts (o renombrar) sin que
TS te abrume con errores de todo el código viejo a la vez.
La estrategia, paso a paso
La válvula de escape honesta: @ts-expect-error
Durante una migración, a veces necesitas silenciar un error TEMPORALMENTE para avanzar.
La forma honesta es @ts-expect-error, no any por todos lados:
// @ts-expect-error: silencia el error de la línea SIGUIENTE, y AVISA si algún día
// esa línea deja de tener error (te recuerda quitar el silenciador). Mejor que @ts-ignore.
const valor = libreriaVieja.metodoSinTipos();
// úsalo con moderación y un comentario que explique POR QUÉ. Cada @ts-expect-error
// es deuda técnica visible: un "arréglame cuando puedas", no una solución.Heredas una app JavaScript de 200 archivos y decides migrarla a TypeScript. ¿Cuál es el primer paso sensato?
Mini-reto
Planea una migración (en papel): 1) toma un proyecto JS pequeño tuyo (o imagina uno con
utils.js, api.js, app.js); 2) escribe el ORDEN en que migrarías los archivos y por
qué (pista: los de menos dependencias primero); 3) lista los escalones de rigor:
¿allowJs primero? ¿cuándo activas strict? Tener el plan claro es la mitad de una
migración exitosa.
Qué sigue
De la teoría a las manos: el primer proyecto del módulo migra "Mi Bolsillo" —la app que construiste en JavaScript en el supercurso anterior— a TypeScript estricto, con tipos en cada rincón. Verás cómo los tipos convierten tu código bueno en código a prueba de balas.