Skip to content

❌ No imprime nada (el .js estaba desactualizado)

TypeScript · 2026-07-11 · Variable_base

🔴 Qué pasó

❯ tsc main.ts      # (con el archivo aún vacío)
❯ node main.js     # ...no imprime nada

Escribí console.log("Hola, TypeScript! Mundo"); en main.ts, guardé, corrí node main.js y no salía nada, aunque el código estaba bien.

🔍 Causa

Comparando las horas de los archivos:

ArchivoGuardado
main.ts (mi código)10:28 ← recién escrito
main.js (compilado)10:26 ← 2 min ANTES

Compilé cuando el .ts estaba vacío → generó un main.js con solo "use strict";. Después escribí el console.log pero nunca volví a compilar, así que node ejecutó el .js viejo y vacío.

✅ Solución

Recompilar SIEMPRE después de editar el .ts, y recién ahí ejecutar:

bash
tsc main.ts && node main.js

El && obliga a compilar antes de correr, así el .js nunca queda desactualizado.

⚠️ tsc no recompila solo. Cada cambio en el .ts necesita un nuevo tsc. El console.log no fallaba: Node corría una versión vieja del archivo.

💡 Más adelante: tsc --watch recompila automático al guardar.

🔁 Variante: editar SIN guardar

Me pasó también lo contrario: escribí líneas nuevas en el editor, compilé, y seguían sin salir. Causa: tsc lee el archivo guardado en disco, no lo que se ve en VS Code. Había editado pero no había hecho Cmd + S, así que compilé la versión vieja.

El ciclo completo son 3 pasos:

1. Guardar   →  Cmd + S
2. Compilar  →  tsc main.ts
3. Ejecutar  →  node main.js

⚠️ En la pestaña de VS Code: = guardado · ● (punto) = cambios sin guardar.

🧑‍🏫 Solución permanente: activar File → Auto Save para no depender de acordarme.