typestar

satisfies en TypeScript

Verificar un valor contra un tipo sin ensancharlo a ese tipo.

type ThemeConfig = Record<string, { bg: string; dark: boolean }>;

const annotated: ThemeConfig = {
  monokai: { bg: "#272822", dark: true },
};

const checked = {
  monokai: { bg: "#272822", dark: true },
  paper: { bg: "#ffffff", dark: false },
} satisfies ThemeConfig;

// annotated.monokai se verifica, pero las claves se ensanchan a string
const anyKey: string = Object.keys(annotated)[0]!;

// checked conserva sus claves exactas y los tipos de sus valores
type ThemeName = keyof typeof checked;
const name: ThemeName = "paper";
const isDark: false = checked.paper.dark;

console.log(anyKey, name, isDark);

Cómo funciona

  1. Una anotación ensancha; satisfies conserva los tipos literales.
  2. Así obtienes el chequeo y también las claves precisas.
  3. Es la herramienta correcta para un objeto de configuración.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
20
Caracteres a escribir
606
Tokens
124
Ritmo de tres estrellas
100 tpm

Al ritmo de tres estrellas de 100 tokens por minuto, este intento toma unos 74 segundos.

Escribe este fragmento

Paso 1 de 2 en satisfies y strict; paso 21 de 23 en Tipos y anotaciones.

← Anterior Siguiente →