← JavaScript: el lenguaje que hay debajo de TypeScript
TypeScript es JavaScript con tipos: el compilador revisa el código antes de ejecutarlo y avisa de los errores que en JavaScript solo aparecen cuando el programa ya está fallando. Aquí tienes un curso para quien ya sabe JavaScript, un editor para probar código en el navegador, las rarezas del lenguaje, un test y ejemplos para tareas concretas. Todo el código se comprobó con TypeScript 7 en modo estricto y se ejecutó con Node.js 24.
Curso · 8 leccionesAprende TypeScript desde cero, en españolPara quien ya sabe JavaScript: qué revisa el compilador y qué no, tipos básicos, uniones y estrechamiento, funciones, interfaces y clases, genéricos, tipos avanzados y un proyecto real migrado paso a paso. Con esquemas, retos y el mensaje real de tsc en cada error.Ir al curso → Editor en líneaPrueba TypeScript en el navegadorEscribe código y mira al momento los errores del compilador en español, el JavaScript que genera y lo que imprime al ejecutarlo. Sin instalar nada.Abrir el editor → Rarezas · 14 casosLo que el compilador deja pasarany, as, propiedades de más, arrays covariantes, Object.keys, índices, void, readonly, enum e interfaces: por qué TypeScript acepta o rechaza cada caso y cómo evitarlo.Ver las rarezas → Test · 24 preguntas¿Compila o no?24 fragmentos de código y una sola pregunta: ¿los acepta tsc en modo estricto? Con la nota, los aciertos por lección y el mensaje real del compilador en cada respuesta.Hacer el test →Los ejemplos de Node se ejecutan con node archivo.ts: Node 24 quita los tipos y ejecuta el resto, pero no los revisa. Para revisarlos hace falta tsc --noEmit; cada ejemplo dice cómo.
Modelar con tipos
- Uniones discriminadas: estados sin errores imposiblesCómo modelar los estados de un pedido con una unión discriminada en TypeScript: cada estado con sus datos, switch exhaustivo, el truco de never y…
- Genéricos: funciones, restricciones y clasesQué es un genérico en TypeScript y cuándo usarlo: una función que conserva el tipo, dos parámetros de tipo para agrupar, restricciones con extends y…
- Tipos utilitarios: Partial, Pick, Omit y RecordLos tipos utilitarios de TypeScript con un ejemplo cada uno: Partial para actualizar, Pick y Omit para recortar, Record, Readonly, Required, y…
- enum y sus alternativasQué hace de verdad un enum de TypeScript, por qué Node 24 no lo ejecuta, el agujero de los enum numéricos, y las alternativas: un objeto as const o…
Datos que llegan de fuera
- Validar la respuesta de fetch con ZodPor qué el JSON que llega de fetch no tiene el tipo que le pones, qué pasa cuando la API cambia sin avisar y cómo validarlo con Zod para tener a la…
- Leer JSON con tiposCómo leer un archivo JSON en TypeScript sin que JSON.parse lo convierta todo en any: unknown y una guarda de tipo, importar el JSON con with { type…
- Errores como valores: el tipo ResultPor qué en TypeScript el error de un catch es unknown, y cómo devolver los errores como valores con un tipo Result: éxito o fallo, errores con nombre…
En la terminal, con Node.js
- tsconfig.json explicadoUn tsconfig.json comentado para un proyecto de Node 24: qué genera tsc –init, qué hace cada opción importante, cómo ejecutar los .ts directamente y…
- Un servidor HTTP sin frameworksUna pequeña API de tareas con node:http y TypeScript: rutas en un Record con tipos de plantilla, validación del cuerpo con una guarda de tipo…
- Argumentos de línea de órdenes con parseArgsLeer los argumentos de un programa de terminal en TypeScript con util.parseArgs de Node: opciones cortas y largas, valores por omisión, tipos que…
- Leer y escribir archivos de textoArchivos de texto con TypeScript y node:fs/promises: leer un CSV línea a línea y convertirlo en objetos con tipo, añadir a un registro con niveles…
En el navegador
- Eventos del DOM: querySelector y addEventListenerCómo tipar el DOM en TypeScript: por qué querySelector puede devolver null, cómo indicarle el tipo de elemento, qué tipo de evento recibe cada…
Todo el código pasó por tsc 7.0.2 con --strict y se ejecutó con Node.js 24 (lo del navegador, en Chromium) antes de publicarse; los mensajes y salidas que aparecen están copiados de esa ejecución.
