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
- Tipos condicionales — T extends U ? X : Y deja que un tipo decida su propia forma en vez de que la escribas dos veces.
- infer: sacarle un tipo a otro — Adentro de un tipo condicional, infer le pone nombre a una pieza que todavía no conocés.
- Mapped types: tu propio Partial — { [K in keyof T]: ... } recorre los campos de un tipo, como un .map() pero para tipos.
- Template literal types — Un template string arma un valor; un template literal type arma un tipo, con la misma sintaxis.
- 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.
- Overloads: varias firmas, una función — Una función puede prometer varios contratos distintos según con qué la llamés.
- Estados async tipados — Un pedido tiene cuatro momentos posibles, y un union discriminado no deja mezclarlos.
- Hooks que devuelven tupla — useState devuelve una tupla a propósito: para que renombres sus dos posiciones sin pedirle permiso a nadie.
- Tipos recursivos — Un tipo puede nombrarse a sí mismo adentro de su propia definición, igual que un árbol contiene árboles más chicos.
- 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.
- `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.
- 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.