¿Qué es ts-node y para qué sirve?
\n\nts-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\nEscenarios 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
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.
Instalación de ts-node
\n\nLa 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.
# 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\nDespués de la instalación, verifique la versión:
\nts-node --version\n# Salida: v10.9.2\n\nInicio rápido con un ejemplo de código
\n\nCree un archivo hello.ts:
// 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\nEjecute sin compilación:
\nts-node hello.ts\n# Salida: ¡Hola, Alejandro! Tienes 30 años.\n\nPara comparar, la forma normal requeriría dos pasos:
\ntsc hello.ts # compilación a hello.js\nnode hello.js # ejecución del archivo compilado\n\nMétodos y funciones principales de ts-node
\n\n1. ts-node [file.ts] — Ejecución básica de archivos
\nDescripción: Comando principal para ejecutar un archivo TypeScript. ts-node compila y ejecuta el código automáticamente.
\nParámetros:
\n- \n
file.ts— ruta al archivo TypeScript \n --projecto-P— ruta a tsconfig.json \n --transpile-only— solo transpilación (más rápido, pero sin verificación de tipos) \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\n2. ts-node --eval — Ejecución de código desde una cadena
\nDescripción: Permite ejecutar código TypeScript pasado como cadena, sin necesidad de crear un archivo.
\nParámetros:
\n- \n
-eo--eval— cadena con código TypeScript \n -po--print— mostrar el resultado de la ejecució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\n3. ts-node --compiler-options
También en la biblioteca
ORM para C++: comparación y ejemplos de uso de bibliotecas
Registro en Kotlin: revisión de las mejores bibliotecas y soluciones
Criptografía en Kotlin: cifrado y hash con ejemplos
Aprendizaje automático en C# (.NET): revisión de las bibliotecas ML.NET, Accord.NET, TensorFlow.NET
Trabajo con XML en Rust: bibliotecas quick-xml, roxmltree y serde_xml_rs