Praktiske satisfies-mønstre
Bruk satisfies på konfigurasjonsobjekter og oppslagstabeller.
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);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
- Hvorfor satisfies finnes
- satisfies kontra typeannotasjon
- satisfies kontra as-påstand
- Praktiske satisfies-mønstre