0Pricing
TypeScript Academy · Lesson

Practical satisfies Patterns

Apply satisfies to config objects and lookup tables.

Validating a Color Palette

A common pattern is satisfies Record<string, Color> for a palette: every value is checked to be a valid color, while keys stay exact for autocomplete.

type Color = "red" | "green" | "blue";
const palette = {
  primary: "blue",
  secondary: "green"
} satisfies Record<string, Color>;
console.log(palette.primary);

Catching Invalid Palette Values

If a value is not a valid Color, satisfies errors, while the keys remain precisely typed.

type Color = "red" | "green" | "blue";
// const bad = { primary: "purple" } satisfies Record<string, Color>; // Error
const ok = { primary: "red" } satisfies Record<string, Color>;
console.log(ok.primary);

All lessons in this course

  1. Why satisfies Exists
  2. satisfies vs Type Annotation
  3. satisfies vs as Assertion
  4. Practical satisfies Patterns
← Back to TypeScript Academy