ts-node para TypeScript: guía completa con ejemplos

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

¿Qué es ts-node y para qué sirve?

\n\n

ts-node es un motor de TypeScript para Node.js que permite ejecutar archivos TypeScript directamente, sin compilación previa a JavaScript. Funciona como REPL (Read-Eval-Print Loop) y como herramienta de línea de comandos, proporcionando una integración perfecta de TypeScript en el ecosistema de Node.js.

\n\n

Escenarios de uso principales:

\n
    \n
  • Desarrollo rápido y prototipado — no es necesario esperar la compilación de cada cambio
  • \n
  • Ejecución de scripts — ejecución de archivos TypeScript en producción (con precaución)
  • \n
  • Pruebas — ejecución de pruebas escritas en TypeScript
  • \n
  • Desarrollo interactivo — modo REPL para experimentar con TypeScript
  • \n
  • Migración de proyectos — transición gradual de JavaScript a TypeScript
  • \n
\n\n

A diferencia del enfoque estándar (compilación con tsc y ejecución con node), ts-node hace que el proceso de desarrollo sea más fluido y rápido.

\n\n

Instalación de ts-node

\n\n

La instalación se realiza a través de npm (gestor de paquetes de Node.js). Para desarrolladores de Python: es el equivalente a pip install.

\n\n
# Instalación global (disponible en todas partes)\nnpm install -g ts-node\n\n# Instalación local (recomendada para proyectos)\nnpm install --save-dev ts-node\n\n# Instalación junto con TypeScript (si aún no está instalado)\nnpm install --save-dev ts-node typescript\n\n# Para trabajar con versiones específicas de TypeScript\nnpm install --save-dev ts-node@10.9.2 typescript@5.3.3
\n\n

Después de la instalación, verifique la versión:

\n
ts-node --version\n# Salida: v10.9.2
\n\n

Inicio rápido con un ejemplo de código

\n\n

Cree un archivo hello.ts:

\n\n
// hello.ts\ninterface Greeting {\n    name: string;\n    age: number;\n}\n\nfunction greet(person: Greeting): string {\n    return `¡Hola, ${person.name}! Tienes ${person.age} años.`;\n}\n\nconst user: Greeting = { name: "Alejandro", age: 30 };\nconsole.log(greet(user));
\n\n

Ejecute sin compilación:

\n
ts-node hello.ts\n# Salida: ¡Hola, Alejandro! Tienes 30 años.
\n\n

Para comparar, la forma normal requeriría dos pasos:

\n
tsc hello.ts    # compilación a hello.js\nnode hello.js   # ejecución del archivo compilado
\n\n

Métodos y funciones principales de ts-node

\n\n

1. ts-node [file.ts] — Ejecución básica de archivos

\n

Descripción: Comando principal para ejecutar un archivo TypeScript. ts-node compila y ejecuta el código automáticamente.

\n

Parámetros:

\n
    \n
  • file.ts — ruta al archivo TypeScript
  • \n
  • --project o -P — ruta a tsconfig.json
  • \n
  • --transpile-only — solo transpilación (más rápido, pero sin verificación de tipos)
  • \n
\n

Ejemplo:

\n
# Ejecución normal\nts-node app.ts\n\n# Con configuración específica\nts-node --project tsconfig.prod.json app.ts\n\n# Solo transpilación (más rápido)\nts-node --transpile-only app.ts
\n\n

2. ts-node --eval — Ejecución de código desde una cadena

\n

Descripción: Permite ejecutar código TypeScript pasado como cadena, sin necesidad de crear un archivo.

\n

Parámetros:

\n
    \n
  • -e o --eval — cadena con código TypeScript
  • \n
  • -p o --print — mostrar el resultado de la ejecución
  • \n
\n

Ejemplo:

\n
# Expresión simple\nts-node -e "console.log('¡Hola desde ts-node!')"\n\n# Usando características de TypeScript\nts-node -e "\ninterface User { name: string }\nconst user: User = { name: 'María' };\nconsole.log(user.name);\n"\n\n# Con salida del resultado\nts-node -p "1 + 2"
\n\n

3. ts-node --compiler-options

Recommendations