𝗡𝗼𝗱𝗲.𝗷𝘀 𝟮𝟰 𝗖𝗼𝗻 𝗧𝘆𝗽𝗲𝗦𝗰𝗿𝗶𝗽𝘁 𝗡𝗮𝘁𝗶𝘃𝗼
Node.js 24 cambia la forma en que usas TypeScript. Ahora puedes ejecutar archivos .ts en producción sin necesidad de un paso de compilación.
El entorno de ejecución (runtime) elimina las anotaciones de tipo en el momento de la carga. Trata a TypeScript como JavaScript anotado y lo ejecuta directamente. Esto elimina la necesidad de transpilación o empaquetado (bundling).
Por qué esto es importante:
- Solo necesitas una única fuente de verdad.
- Eliminas la complejidad de gestionar directorios
dist. - Tu entorno de desarrollo coincide exactamente con el de producción.
Cómo funciona: El cargador de módulos intercepta el texto fuente. Elimina las interfaces, las anotaciones de tipo y las importaciones de solo tipo. La lógica restante se ejecuta en el motor V8 estándar. El código transformado permanece en la caché de módulos, por lo que esto solo ocurre una vez por cada carga de módulo.
Los límites que debes conocer: Esto no es un reemplazo completo para tu pipeline de construcción. Aún necesitarás herramientas para ciertas tareas.
- Sin comprobación de tipos: El runtime no busca errores. Debes ejecutar
tsc --noEmiten tu pipeline de CI para detectar fallos. - Sin alias de rutas: No admite el mapeo de rutas de
tsconfig.json. - Sin decoradores: Las transformaciones avanzadas aún requieren un empaquetador como
esbuild. - Sin seguridad en tiempo de ejecución: Los tipos eliminados no ofrecen ninguna protección durante la ejecución. Utiliza librerías como
Zodpara la validación de datos.
Cuándo usarlo: TypeScript nativo es perfecto para microservicios con grafos de dependencias sencillos. Aumenta la velocidad de despliegue al reducir las piezas móviles.
Cuándo seguir utilizando compilaciones tradicionales: Si necesitas una optimización agresiva, tree shaking o minificación, mantén tu pipeline actual. Las aplicaciones grandes con requisitos de construcción complejos seguirán beneficiándose más de los bundles de JavaScript optimizados.
Cómo configurarlo: Para mantener tus trazas de pila (stack traces) legibles, utiliza la bandera de source maps.
Comando de ejemplo: node --enable-source-maps src/server.ts
Esto te permite depurar errores utilizando los números de línea originales de TypeScript.