TypeScript Academy · Oppitunti

satisfies-käytännön mallit

Soveltakaa satisfies-ominaisuutta konfiguraatio-objekteihin ja hakutaulukoihin.

Oppitunti 4/413 vaihetta

satisfies-käytännön mallit on ilmainen TypeScript Academy-oppitunti CoddyKitissä. Tämä on oppitunti 4/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu TypeScript Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. TypeScript Academy-kurssilla on yhteensä 4 oppituntia.

Väripaletin validointi

Paletille tyypillinen malli on satisfies Record<string, Color>: jokainen arvo tarkistetaan kelvolliseksi väriksi, mutta avaimet säilyvät täsmällisinä automaattista täydennystä varten.

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

Virheellisten palettiarvojen havaitseminen

Jos arvo ei ole kelvollinen Color, satisfies ilmoittaa virheestä, mutta avaimet pysyvät täsmällisesti tyypitettyinä.

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

Avainten automaattisen täydennyksen säilyttäminen

Koska päätellyt avaimet ovat "primary" | "secondary", editori täydentää ne automaattisesti. Tavallinen Record-tyyppimerkintä menettäisi yksittäiset avaimet.

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

Reittikartan validointi

Reittikartat hyötyvät samasta mallista: arvojen on vastattava käsittelijän rakennetta, mutta reittien nimet säilyvät tunnettuina navigoinnin apufunktioita varten.

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

Karttaan indeksointi

Kun avaimet säilyvät, voitte muodostaa kelvollisten reittien nimistä tyypin ja indeksoida karttaa tyyppiturvallisesti.

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

Tyypitetty konfiguraatio erimuotoisilla arvoilla

satisfies toimii myös silloin, kun arvoilla on erilaiset rakenteet. Rajatkaa tyypiksi unionityyppi, niin jokainen arvo validoidaan sitä vasten.

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

Enum-tyyppiset hakutaulukot

Rakentakaa hakutaulukko, joka validoidaan arvotyypin perusteella, mutta jonka jokainen alkio säilyy täsmällisenä myöhempää käyttöä varten.

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

Yhdistäminen as const -lausekkeeseen

Yhdistäkää as const ja satisfies, kun haluatte syvästi muuttumatonta ja validoitua dataa: as const lukitsee datan, satisfies tarkistaa sen.

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

Lukuarvoalueiden validointi tyypillä

Voitte rajata arvot lukuarvoliteraalien unioniksi ja mallintaa siten kiinteitä vaihtoehtojoukkoja, jotka validoidaan määrittelyn yhteydessä.

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

Ominaisuuslippujen kartta

Käytännöllisessä ominaisuuslippujen konfiguraatiossa avaimet ovat automaattisesti täydennettäviä lippujen nimiä ja arvot ovat satisfies-operaattorilla validoitavia totuusarvoja.

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

Miksi tämä malli on paras

Paleteissa, reiteissä ja ominaisuuslipuissa satisfies Record<...> tarjoaa validoidut arvot sekä täsmälliset avaimet ja literaalit. Se on tyypitetyn konfiguraation käytännöllinen ihanneratkaisu.

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

Pikatarkistus: satisfies käytännössä

Testatkaa ymmärrystänne satisfies-operaattorin käytännön malleista.

Kertaus: satisfies-operaattorin käytännön mallit

Käytitte muotoa satisfies Record<string, Color> paletteissa, reittikartoissa, ominaisuuslipuissa ja hakutaulukoissa. Näin täsmälliset avaimet ja literaalit säilyvät automaattista täydennystä varten, samalla kun jokainen arvo validoidaan.

type Color = "red" | "blue";
const theme = { bg: "blue", fg: "red" } satisfies Record<string, Color>;
console.log(theme.bg, theme.fg);
Aloita maksutta

Opi TypeScript tekoälytuutorin avulla — ilmaiseksi

Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.

Kurssit
101
Oppitunnit
352

Usein kysytyt kysymykset

Onko oppitunti ”satisfies-käytännön mallit” ilmainen?

Kyllä – oppitunnin ”satisfies-käytännön mallit” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko TypeScript Academy-kurssin, päivitä CoddyKit PROhon. TypeScript Academy-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”satisfies-käytännön mallit”?

Soveltakaa satisfies-ominaisuutta konfiguraatio-objekteihin ja hakutaulukoihin. Harjoittelet TypeScript Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni TypeScript Academy-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin TypeScript Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 4/4.

Kuinka kauan ”satisfies-käytännön mallit”-oppitunnin suorittaminen kestää?

Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.

Voinko kirjoittaa ja suorittaa koodia tällä TypeScript Academy-oppitunnilla?

Kyllä. Jokainen TypeScript Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.

Kaikki tämän kurssin oppitunnit

  1. Miksi satisfies on olemassa
  2. satisfies ja tyyppimerkintä
  3. satisfies ja as-väite
  4. satisfies-käytännön mallit
← Takaisin: TypeScript Academy