Temario del Curso de TypeScript (de Cero a APIs con Node.js)
En este curso de TypeScript vas a pasar de conocer el tipado estático básico a construir una API REST completa con Node.js y Express totalmente tipada. Trabajamos el sistema de tipos en profundidad: tipos primitivos y literales, interfaces, type aliases, funciones genéricas, manejo de errores, módulos y programación orientada a objetos. Cerramos integrando Fetch/Axios, validación de datos y un proyecto final de API productiva. Todo en grupos reducidos de máximo 6 personas, con correcciones en vivo sobre tu código.
Introducción a TypeScript y Tipado Estático
Ventajas de TypeScript frente a JavaScript: feedback temprano, autocompletado y refactors seguros.
Instalación, configuración básica del compilador tsc y archivo tsconfig.json.
Primeros tipos: string, number, boolean, any y reglas de asignación.
Tipos Primitivos, Literales y Type Narrowing
Repaso de tipos primitivos y literales para valores específicos ("success" | "error", etc.).
Uniones y type narrowing usando typeof, in, instanceof y chequeos personalizados.
Buenas prácticas para evitar any y mantener el tipado explícito pero práctico.
Interfaces, Tipos Personalizados y Type Aliases
Definir contratos de datos con interface y type para objetos y colecciones.
Propiedades opcionales, de solo lectura y composición con extends e intersecciones.
Patrones comunes para tipar DTOs, respuestas de APIs y configuraciones.
Funciones Tipadas, Parámetros Opcionales y Genéricos
Funciones con parámetros obligatorios, opcionales y valores por defecto.
Firma de funciones, tipos de retorno, funciones que nunca retornan (never) y callbacks tipados.
Introducción a genéricos: funciones y utilidades que funcionan con múltiples tipos sin perder seguridad.
Módulos, Namespaces y Organización de Código
Importación y exportación con módulos ES y módulos comunes en proyectos TypeScript.
Separación por capas y responsabilidades: archivos, carpetas y convenciones de nombres.
Uso razonable de namespaces y declaración de tipos globales cuando realmente hace falta.
Manejo de Errores, Never y Exhaustividad
Errores en TypeScript: tipos para Error, manejo con try/catch y propagación segura.
Uso del tipo never para asegurar que un switch es exhaustivo y no quedan casos sin manejar.
Patrones de resultado (Result<T, E>) y manejo explícito de éxito/error.
Programación Orientada a Objetos con TypeScript
Clases, constructores y propiedades con modificadores de acceso (public, private, protected).
Interfaces para contratos de clases, herencia y composición.
Clases abstractas, métodos estáticos y patrones simples aplicados a servicios de aplicación.
Working with APIs: Fetch, Axios y Tipado de Respuestas
Consumo de APIs REST usando fetch y Axios en proyectos TypeScript.
Tipado de requests y responses: DTOs, parámetros de ruta/query y body.
Manejo tipado de errores, estados de carga y respuestas parciales u opcionales.
Integración con Node.js, Express y Validación de Datos
Creación de un proyecto backend con Node.js, Express y TypeScript desde cero.
Rutas, controladores y middlewares completamente tipados (req, res, next).
Validación de datos de entrada con librerías como Zod o class-validator y tipos seguros en el controlador.
Proyecto Final: API Tipada Full TypeScript
Diseño de la API final: recursos, endpoints, modelos de datos y relaciones.
Implementación de casos de uso reales: creación, listado, actualización y borrado con validaciones.
Buenas prácticas para desplegar una API TypeScript (scripts de build, variables de entorno y estructura productiva).
¿Necesito ser experto en JavaScript para tomar este curso?⌄
No necesitas ser experto, pero sí tener conocimientos sólidos de los fundamentos (variables, funciones, objetos, arrays). TypeScript se construye sobre JavaScript, así que cuanto mejor sea tu base de JS, más rápido aprenderás TS.¿Por qué debería aprender TypeScript si ya sé JavaScript?⌄
Porque TypeScript te da seguridad. Evita el 90% de los errores comunes ('undefined is not a function') antes de ejecutar el código, mejora el autocompletado y hace que tu código sea mucho más fácil de mantener en equipos.¿Qué es exactamente el 'tipado estático'?⌄
Significa que definimos los tipos de datos (string, number, etc.) mientras escribimos el código, y no en tiempo de ejecución. Esto permite que el compilador nos avise de errores antes de que el usuario use la aplicación.¿El navegador entiende TypeScript?⌄
No. TypeScript debe ser 'transpilado' (traducido) a JavaScript estándar para que el navegador o Node.js puedan ejecutarlo. En el curso aprendemos a configurar este proceso con `tsc`.¿Cuál es la diferencia entre `interface` y `type`?⌄
Es la pregunta clásica. Ambos sirven para definir estructuras, pero las `interfaces` son mejores para objetos y son extensibles (POO), mientras que los `types` son más flexibles para uniones, intersecciones y primitivos.¿Qué es el tipo `any` y por qué debemos evitarlo?⌄
`any` desactiva el chequeo de tipos de TypeScript. Usarlo convierte tu código básicamente en JavaScript inseguro. Enseñamos a usarlo solo como último recurso o durante migraciones.¿Qué son los Genéricos (`Generics`)?⌄
Son como 'variables para tipos'. Permiten crear componentes o funciones que funcionan con varios tipos de datos sin perder la seguridad del tipado. Son fundamentales para escribir código reutilizable.¿Este curso sirve para Frontend o Backend?⌄
Para ambos. TypeScript es el lenguaje. Sin embargo, el proyecto final se enfoca en el **Backend** (crear una API con Node.js), lo cual te da una comprensión profunda de cómo manejar datos estrictos.¿Qué es `tsconfig.json`?⌄
Es el archivo de configuración del proyecto. Define qué tan estricto será TypeScript, a qué versión de JavaScript vamos a compilar y dónde se guardarán los archivos generados.¿Vemos Programación Orientada a Objetos (POO)?⌄
Sí. TypeScript mejora mucho la POO de JavaScript agregando modificadores de acceso (`public`, `private`, `protected`) y clases abstractas. Lo veremos aplicado a servicios.