TypeScript Academy · leksjon

Praktiske satisfies-mønstre

Bruk satisfies på konfigurasjonsobjekter og oppslagstabeller.

Leksjon 4 av 413 trinn

Praktiske satisfies-mønstre er en gratis leksjon i TypeScript Academy på CoddyKit. Dette er leksjon 4 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i TypeScript Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i TypeScript Academy inneholder totalt 4 leksjoner.

Validere en fargepalett

Et vanlig mønster for en palett er satisfies Record<string, Color>: hver verdi kontrolleres for å være en gyldig farge, mens nøklene forblir eksakte for autofullføring.

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

Fange opp ugyldige palettverdier

Hvis en verdi ikke er en gyldig Color, rapporterer satisfies en feil, mens nøklene fortsatt har presise typer.

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);

Beholde autofullføring for nøkler

Fordi de infererte nøklene er "primary" | "secondary", autofullfører redigeringsverktøyet dem, i motsetning til en vanlig Record-annotasjon som ville mistet de spesifikke nøklene.

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

Validere et rutekart

Rutekart har også nytte av dette: verdiene må samsvare med en behandlertype, mens rutenavnene forblir kjente for navigasjonshjelpere.

type Route = { method: "GET" | "POST"; path: string };
const routes = {
  home: { method: "GET", path: "/" },
  login: { method: "POST", path: "/login" }
} satisfies Record<string, Route>;
console.log(routes.login.method);

Indeksere i kartet

Når nøklene bevares, kan De lage en type for gyldige rutenavn og indeksere i kartet på en typesikker måte.

type Route = { method: string; path: string };
const routes = {
  home: { method: "GET", path: "/" },
  about: { method: "GET", path: "/about" }
} satisfies Record<string, Route>;
type RouteName = keyof typeof routes; // "home" | "about"
const pick: RouteName = "about";
console.log(routes[pick].path);

Typet konfigurasjon med blandede verdier

satisfies fungerer også når verdiene har ulike strukturer. Begrens dem med en unionstype, så valideres hver verdi mot den.

type Setting = number | boolean | string;
const config = {
  retries: 3,
  verbose: true,
  region: "eu"
} satisfies Record<string, Setting>;
console.log(config.retries, config.verbose);

Enum-lignende oppslagstabeller

Bygg en oppslagstabell som valideres mot en verdi-type, samtidig som hver oppføring beholder sin nøyaktige type for senere bruk.

type Status = "active" | "inactive";
const userStatus = {
  alice: "active",
  bob: "inactive"
} satisfies Record<string, Status>;
const s: "active" = userStatus.alice;
console.log(s);

Kombinere med as const

Kombiner as const og satisfies for dypt uforanderlige, validerte data: as const gjør dataene uforanderlige, mens satisfies kontrollerer dem.

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

Validere numeriske områder med typer

De kan begrense verdier til en union av numeriske literaler for å modellere faste alternativsett som valideres ved definisjonstidspunktet.

type Level = 1 | 2 | 3;
const levels = {
  easy: 1,
  medium: 2,
  hard: 3
} satisfies Record<string, Level>;
console.log(levels.hard);

Et kart over funksjonsflagg

En praktisk konfigurasjon for funksjonsflagg: nøklene er flaggnavn som kan autofullføres, og verdiene er boolske og valideres av satisfies.

const flags = {
  newDashboard: true,
  betaSearch: false
} satisfies Record<string, boolean>;
type Flag = keyof typeof flags;
const f: Flag = "betaSearch";
console.log(flags[f]);

Hvorfor dette mønsteret vinner

For paletter, ruter og flagg gir satisfies Record<...> validerte verdier samt presise nøkler og literaler – det ideelle standardmønsteret for typede konfigurasjoner.

type Color = "red" | "green" | "blue";
const ui = { brand: "green", warn: "red" } satisfies Record<string, Color>;
console.log(Object.keys(ui).join(","));

Hurtigsjekk: Praktisk bruk av satisfies

Test forståelsen Deres av praktiske satisfies-mønstre.

Oppsummering: Praktiske satisfies-mønstre

De har brukt satisfies Record<string, Color> på paletter, rutekart, flagg og oppslagstabeller. Da bevares eksakte nøkler og literaler for autofullføring, samtidig som hver verdi valideres.

type Color = "red" | "blue";
const theme = { bg: "blue", fg: "red" } satisfies Record<string, Color>;
console.log(theme.bg, theme.fg);
Gratis å komme i gang

Lær deg TypeScript med en AI-veileder – gratis

Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.

Kurs
101
Leksjoner
352

Ofte stilte spørsmål

Er leksjonen «Praktiske satisfies-mønstre» gratis?

Ja – hele teksten i «Praktiske satisfies-mønstre» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av TypeScript Academy-kurset, kan du oppgradere til CoddyKit PRO. Kurset i TypeScript Academy inneholder totalt 4 leksjoner.

Hva lærer jeg i «Praktiske satisfies-mønstre»?

Bruk satisfies på konfigurasjonsobjekter og oppslagstabeller. Du øver på TypeScript Academy med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.

Trenger jeg erfaring for å begynne med TypeScript Academy?

Ingen tidligere erfaring er nødvendig. TypeScript Academy på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 4 av 4.

Hvor lang tid tar leksjonen «Praktiske satisfies-mønstre»?

De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.

Kan jeg skrive og kjøre kode i denne TypeScript Academy-leksjonen?

Ja. Alle TypeScript Academy-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.

Alle leksjonene i dette kurset

  1. Hvorfor satisfies finnes
  2. satisfies kontra typeannotasjon
  3. satisfies kontra as-påstand
  4. Praktiske satisfies-mønstre
← Tilbake til TypeScript Academy