Boost Academy
FormaciónEvaluacionesPerfil
Volver
  • En directo

TypeScript — Intermedio

8h de clase en directo·HACK A BOSS·Español

Skills que aprenderás

  • TypeScript

Convocatorias

Necesitas un plan activo

Para acceder a los cursos en directo necesitas un plan activo. Estamos trabajando para que los planes estén disponibles pronto — ¡mantente atento!

No hay convocatorias abiertas ahora mismo, pero no te pierdas la oportunidad: guarda este curso y te avisamos en cuanto se abra una convocatoria.

Descripción

Objetivos

Temario

Requisitos técnicos

Conocimientos previos

Detalles de la convocatoria

Recursos

No hay recursos disponibles todavía para esta convocatoria

Este curso está dirigido a desarrolladores que ya dominan los fundamentos de TypeScript y quieren consolidar un uso profesional del sistema de tipos en proyectos reales. A lo largo de ocho horas, los participantes profundizarán en el modelado preciso de entidades de negocio mediante uniones discriminadas, aprenderán a tomar decisiones razonadas entre type e interface, diseñarán abstracciones genéricas reutilizables y gestionarán la integración de TypeScript en bases de código JavaScript existentes. Al finalizar, el participante será capaz de incorporar TypeScript con modo estricto en un proyecto real, tipar correctamente módulos de terceros sin declaraciones oficiales y depurar errores de compilación complejos, incluyendo los originados por inferencia en genéricos, eliminando el recurso indiscriminado a any.

  1. Explicar las diferencias conceptuales entre type e interface, identificando las características exclusivas de cada construcción —extensión, fusión de declaraciones, compatibilidad con genéricos— y seleccionando la opción más adecuada ante casos de diseño concretos.
  2. Justificar el uso de unknown frente a any al recibir datos externos, describiendo los mecanismos de type narrowing que permiten operar con ellos de forma segura.
  3. Diseñar interfaces y tipos de dominio que modelen entidades de negocio con múltiples variantes de estado, empleando uniones discriminadas y argumentando la elección frente a alternativas estructurales.
  4. Diseñar funciones y estructuras de datos genéricas con al menos dos parámetros de tipo restringidos mediante extends, aplicables como utilidades transversales en un proyecto.
  5. Integrar TypeScript en un proyecto JavaScript existente habilitando strict: true en tsconfig.json y resolviendo los errores de compilación resultantes sin introducir any ni suprimir diagnósticos injustificadamente.
  6. Adaptar módulos JavaScript de terceros sin tipado oficial creando archivos de declaración .d.ts propios, y anotar completamente funciones asíncronas que consumen APIs REST, eliminando toda inferencia implícita a any.
  7. Depurar conjuntos de errores de compilación de TypeScript —incluyendo errores de inferencia en genéricos— identificando la causa raíz de cada uno y aplicando la corrección mínima necesaria.

Modelado de tipos y decisiones de diseño. El curso abre revisando las diferencias prácticas entre type e interface: cuándo la fusión de declaraciones (declaration merging) resulta relevante, cómo se comporta cada construcción al extenderse y qué limitaciones presentan con genéricos. A partir de esa base conceptual, se trabaja el modelado de entidades de negocio con uniones discriminadas, comparando este enfoque con jerarquías de clases o tipos de intersección para representar variantes de estado complejas.

Genéricos avanzados y seguridad de tipos en datos externos. El segundo bloque aborda el diseño de funciones y estructuras de datos genéricas con múltiples parámetros de tipo y restricciones extends, orientadas a construir utilidades reutilizables en proyectos reales. En paralelo se estudia la diferencia semántica entre unknown y any: se examina por qué unknown es la elección correcta para datos cuyo tipo no se puede garantizar en tiempo de compilación —respuestas de API, input de usuario— y se practican las técnicas de narrowing necesarias para operar con ellos de forma segura.

Integración de TypeScript en proyectos JavaScript y extensión de módulos de terceros. Este bloque cubre el proceso completo de migrar o incorporar TypeScript a una base de código JavaScript existente: configuración de tsconfig.json con modo estricto, resolución sistemática de los errores que aparecen tras activar strict: true y criterios para documentar los escasos casos en que any o @ts-ignore puedan estar justificados. Se complementa con la creación de archivos de declaración .d.ts para bibliotecas sin tipado oficial, cubriendo solo la superficie de API efectivamente utilizada, y con la anotación completa de funciones asíncronas que consumen endpoints REST.

Depuración de errores de compilación. El bloque final se dedica íntegramente a la lectura e interpretación de mensajes de error del compilador de TypeScript, con especial atención a los errores originados por inferencia en genéricos. Se practica la identificación de la causa raíz en cada caso y la aplicación de correcciones mínimas que resuelvan el problema sin degradar la seguridad de tipos del resto del código.

  • Node.js 20 LTS o superior instalado localmente.
  • TypeScript 5.x instalado globalmente (npm install -g typescript) o como dependencia de desarrollo en el proyecto de prácticas.
  • Editor de código con soporte nativo para TypeScript; se recomienda Visual Studio Code con la extensión oficial de TypeScript habilitada.
  • Git para clonar el repositorio de ejercicios del curso.
  • Acceso a internet para consultar la documentación oficial (typescriptlang.org) y descargar paquetes desde el registro de npm durante las prácticas de integración.

Para aprovechar este curso el participante debe haber completado TTS01 — TypeScript Iniciación o demostrar un nivel equivalente. Se asume dominio de los tipos primitivos y literales, anotaciones de función y variable, tipos de unión e intersección básicos, type narrowing elemental (typeof, instanceof) y configuración inicial del compilador. También se da por sentado el manejo fluido de JavaScript moderno (ES2020+), incluyendo módulos ES, async/await y desestructuración.