Nota
Experiencia de Desarrollo
El operador satisfies de TypeScript está infravalorado
Una anotación de tipo valida un valor pero lo ensancha. El operador satisfies valida sin ensanchar, así que conservas el tipo exacto que realmente escribiste.

Recurrir a una anotación de tipo para comprobar un objeto es el reflejo, y en silencio te cuesta información. Anotar con : Record<string, Color> confirma que la forma es correcta, pero también ensancha cada valor a Color. El compilador olvida que brand era específicamente una tupla RGB, así que indexarla se convierte en un error. Pediste una comprobación y obtuviste una degradación.
El operador satisfies, añadido en TypeScript 4.9, separa esos dos trabajos. Verifica que el valor cumple un tipo sin cambiar el tipo inferido del valor. Te quedas con la barandilla y conservas la precisión.
type RGB = [number, number, number];type Color = RGB | string;
const palette = { brand: [37, 99, 235], danger: "#dc2626",} satisfies Record<string, Color>;
palette.brand[0].toFixed(0); // ✓ brand sigue siendo RGB, no Colorpalette.danger.toUpperCase(); // ✓ danger sigue siendo stringpalette.accent; // ✗ error de compilación: la propiedad no existeCon una anotación, palette.brand[0] fallaría —Color no es indexable— y palette.accent se permitiría en silencio, porque Record<string, Color> promete claves arbitrarias. satisfies te da el par opuesto y correcto: los valores conservan sus tipos inferidos estrechos, así que brand[0] pasa la comprobación, mientras que el objeto sigue validándose contra la restricción, así que un error tipográfico como accent se detecta.
La regla que lo fija: una anotación restringe y ensancha; satisfies restringe y preserva. Úsalo en cualquier sitio donde escribas un literal que deba cumplir un contrato pero cuya forma exacta quieras que el compilador siga recordando: mapas de configuración, tablas de rutas, tokens de estilo, registros de uniones discriminadas. Es la diferencia entre decirle al compilador lo que un valor es y pedirle que compruebe lo que escribiste.
// seguir explorando