DevPath · Aprende a programar ESPTEN

Node con TypeScript

Por qué TypeScript en el backend

JavaScript con tipos

TypeScript es un superconjunto de JavaScript: todo JS válido es TS válido, pero TS añade un sistema de tipos estático. Anotas qué forma tienen tus datos y un compilador los verifica antes de ejecutar el programa.

function sumar(a: number, b: number): number {
  return a + b;
}

sumar(2, 3);      // OK
sumar(2, "3");    // ❌ error de COMPILACIÓN: "3" no es number

En JavaScript ese sumar(2, "3") se ejecutaría y devolvería "23" (un bug silencioso). En TypeScript ni siquiera compila.

Qué ganas

tsconfig y compilación

La configuración del proyecto vive en tsconfig.json:

{
  "compilerOptions": {
    "target": "ES2022",
    "module": "NodeNext",
    "strict": true,
    "outDir": "dist"
  }
}

strict: true activa las comprobaciones más útiles (entre ellas strictNullChecks, que te obliga a tratar null/undefined).

Para ejecutar tu código tienes dos caminos:

Clave: en runtime sigue siendo JavaScript

El compilador borra los tipos (type erasure). El .js que Node ejecuta no tiene ni rastro de : number ni de interface:

interface Usuario { nombre: string; edad: number; }

function saludar(u: Usuario) {
  return "Hola " + u.nombre;
}

compila aproximadamente a:

function saludar(u) {
  return "Hola " + u.nombre;
}

La interface desaparece. Esto tiene una consecuencia enorme, que veremos al final: los tipos no existen en tiempo de ejecución, así que no protegen contra datos externos (lo que llega por HTTP, de la base de datos, de un JSON.parse...). Los tipos garantizan que tu código es coherente; no garantizan que los datos de entrada tengan la forma prometida.

Pon esto en práctica

DevPath es un curso práctico: aquí lees la teoría; en la app la pones en práctica con ejercicios que se ejecutan de verdad, sin conexión.

Empezar gratis en la app →
Tipar una API Express →