TypeScript II: tipos que hacen trabajo

Tipos condicionales, mapped types y estados async tipados de verdad.

12 aulas · 6 horas de práctica · en el navegador, sin instalar nada

Temario

  1. Tipos condicionales — T extends U ? X : Y deja que un tipo decida su propia forma en vez de que la escribas dos veces.
  2. infer: sacarle un tipo a otro — Adentro de un tipo condicional, infer le pone nombre a una pieza que todavía no conocés.
  3. Mapped types: tu propio Partial — { [K in keyof T]: ... } recorre los campos de un tipo, como un .map() pero para tipos.
  4. Template literal types — Un template string arma un valor; un template literal type arma un tipo, con la misma sintaxis.
  5. Taller — Selector de rutas tipado — Un selector chico que elige una sección por una clave tipada, con rutas armadas por template literal y un mapped type que sabe qué necesita cada una.
  6. Overloads: varias firmas, una función — Una función puede prometer varios contratos distintos según con qué la llamés.
  7. Estados async tipados — Un pedido tiene cuatro momentos posibles, y un union discriminado no deja mezclarlos.
  8. Hooks que devuelven tupla — useState devuelve una tupla a propósito: para que renombres sus dos posiciones sin pedirle permiso a nadie.
  9. Tipos recursivos — Un tipo puede nombrarse a sí mismo adentro de su propia definición, igual que un árbol contiene árboles más chicos.
  10. Componentes genéricos: una lista para cualquier tipo — Un componente puede tener un parámetro de tipo igual que una función: T se infiere de las props, y las restricciones dicen lo mínimo que T tiene que tener.
  11. `satisfies` y `as const`: configuraciones que se comprueban — Una anotación de tipo ensancha el valor y pierde sus claves; `satisfies` lo comprueba sin ensancharlo, y `as const` congela literales de los que se derivan uniones.
  12. Taller — Buscador con estado async tipado — Un buscador chico que junta un estado async tipado, un hook que devuelve tupla y un árbol de resultados recursivo: todo lo que TypeScript II sumó, trabajando junto.

Es parte de