TypeScript III: arquitectura tipada

Máquinas de estado, stores tipados y los límites del compilador.

13 aulas · 7 horas de práctica · en el navegador, sin instalar nada

Temario

  1. Máquinas de estado tipadas — Un estado no es solo una forma: es una lista cerrada de a dónde puede ir desde ahí.
  2. Reducer + contexto: un store tipado — El reducer del curso I y el contexto del curso I son la misma herramienta partida en dos: juntos son un store.
  3. Generics con restricciones — Un generic sin límites acepta cualquier cosa; uno restringido acepta cualquier cosa que cumpla un contrato.
  4. Tu propio utility type — Partial<T> solo baja un nivel. Cuando el objeto tiene objetos adentro, hace falta escribir el propio.
  5. Taller — Máquina de estados de un formulario — Un formulario de tres pasos que no puede representar un paso ilegal, armado con todo lo primero de la carrera.
  6. Narrowing con clases — instanceof angosta el tipo igual que un type predicate, pero la jerarquía la definís vos con clases.
  7. Builder pattern tipado — Un objeto que se arma en pasos, encadenando métodos, sin perder el tipo en ninguno.
  8. Event emitter tipado — Un mapa de eventos a su payload hace que on y emit se corrijan solos entre sí.
  9. El límite del compilador — TypeScript termina en la frontera del programa. Lo que entra de afuera hay que probarlo, no prometerlo.
  10. Inyección de dependencias tipada — Un componente que construye sus propios servicios no se puede probar. Un contexto tipado los recibe de afuera, y un hook que tira si faltan hace explícito el contrato.
  11. Result: errores como valores, sin excepciones — Una función que puede fallar devuelve un Result: la rama de éxito y la de error son valores con tipo, y la UI dibuja cada una en vez de caerse.
  12. Taller — Tu mini store tipado — Un contador con límite, armado con las tres piezas de la segunda mitad de la carrera: errores propios, un builder y un emisor tipado.
  13. Taller — Un carrito que nunca revienta — Un carrito de compras valida la cantidad pedida contra el stock disponible con Result, y encadena map y andThen para calcular el subtotal sin un solo throw.

Es parte de