Featured image of post El operador satisfies en TypeScript: Tipado flexible y seguroFeatured image of post El operador satisfies en TypeScript: Tipado flexible y seguro

El operador satisfies en TypeScript: Tipado flexible y seguro

Learn how the satisfies operator in TypeScript validates object structures against custom types without losing exact literal type inference.

El operador satisfies (TS 4.9+) verifica que una expresión cumple un tipo sin cambiar su tipo inferido. Permite tipado estricto en valores complejos como records y tuplas.

El problema

const x: Record<string, number> = { a: 1, b: 2 } pierde las claves específicas al acceder. Sin anotación, el tipo es demasiado amplio.

Solución con satisfies

const palette = {
  red: [255, 0, 0],
  green: "#00ff00",
} satisfies Record<string, string | number[]>;

El tipo inferido conserva las propiedades específicas, pero se valida contra el constraint.

Casos de uso

Configuraciones de rutas, mapeo de eventos, validación de colores/temas, tuplas con nombres. Combina lo mejor de ambos mundos: inferencia estricta + verificación de conformidad.