TypeScript Academy · Oppitunti

const-väitteet ja as const

Käyttäkää as const -syntaksia literaali- ja tuple-tyyppien täsmälliseen päättelyyn

Oppitunti 4/413 vaihetta

const-väitteet ja as const 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.

Mitä as const tarkoittaa

as const on tyyppiväite, joka käskee TypeScriptiä päättelemään lausekkeelle mahdollisimman täsmälliset literaalityypit ja tekemään kaikki ominaisuudet readonly-ominaisuuksiksi.

const colors = ["red", "green", "blue"] as const;
// type: readonly ["red", "green", "blue"]

Laajentamisen estäminen as const -määritteellä

Ilman as const-määrettä taulukkojen ja olioiden merkkijonoarvot laajenevat tyypiksi string. Sen avulla ne säilyvät literaalityyppeinä.

const dir1 = { direction: "left" };
// dir1.direction: string

const dir2 = { direction: "left" } as const;
// dir2.direction: "left"

as const olioliteraaleissa

Jokaisesta as const-määrettä käyttävän olion ominaisuudesta tulee readonly, ja se säilyttää literaalityyppinsä rekursiivisesti.

const theme = {
  color: "dark",
  sizes: { sm: 8, md: 16 },
} as const;
// theme.color: "dark", theme.sizes.sm: 8 (all readonly)

as const -määre tuple-tyypeille

as const-määrettä käyttävistä taulukoista tulee readonly-tupleja, joiden alkioilla on literaalityypit. Tämä on hyödyllistä kiinteiden argumenttilistojen määrittämisessä.

const args = [1, "hello", true] as const;
// type: readonly [1, "hello", true]

Unionityyppien johtaminen as const -määritteestä

Yleinen toimintamalli on määrittää arvojen as const-taulukko ja johtaa siitä unionityyppi käyttämällä typeof-operaattoria ja indeksoitua käyttöä.

const STATUSES = ["pending", "active", "done"] as const;
type Status = typeof STATUSES[number];
// type Status = "pending" | "active" | "done"

as const funktioargumenteissa

Voitte käyttää as const-määrettä suoraan funktiokutsussa, jotta literaalityypit säilyvät kutsurajan yli.

function setMode(mode: "dark" | "light") {}
setMode("dark" as const); // safe, preserves literal

Readonly-rekursio

as const soveltaa Readonly-tyyppiä rekursiivisesti. Sisäkkäisistä olioista ja taulukoista tulee readonly-tyyppisiä, mikä estää syvät muutokset.

const config = { db: { host: "localhost", port: 5432 } } as const;
// config.db.port = 5433; // Error: readonly

as const ja Object.freeze

as const on käännösaikainen väite, joka ei suojaa ajonaikaisesti. Object.freeze toimii ajonaikana. Niillä on toisiaan täydentävät tehtävät.

const obj = Object.freeze({ x: 1 }); // runtime immutability
const obj2 = { x: 1 } as const;      // compile-time literal types

Const-assertiot ja tyyppimerkinnät

Tyyppimerkintä laajentaa tyyppiä: const x: string = "hi" saa tyypikseen string. as const kaventaa tyyppiä: const x = "hi" as const saa tyypikseen "hi".

const a: string = "hi"; // type: string
const b = "hi" as const; // type: "hi"

Käytännön käyttö: enum-tyyppiset objektit

Monissa koodikannoissa käytetään as const -objekteja enumien vaihtoehtona. Näin vältetään enumien ongelmat ja säilytetään samalla tyyppiturvallisuus.

const Direction = { Up: "UP", Down: "DOWN" } as const;
type Direction = typeof Direction[keyof typeof Direction];
// "UP" | "DOWN"

Kertaus: as const

as const saa TypeScriptin päättelemään literaalityypit ja käsittelemään kaikki ominaisuudet vain luku -ominaisuuksina. Se on välttämätön, kun taulukoista johdetaan täsmällisiä unionityyppejä ja rakennetaan turvallisia konfiguraatio-objekteja.

Pikatarkistus

Mitä as const tekee taulukolle?

Mitä opitte

as const on tehokas työkalu literaalityyppien säilyttämiseen, vain luku -rakenteiden luomiseen ja täsmällisten unionityyppien johtamiseen taulukoista. Se on edistyneiden TypeScript-mallien perusta.

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 ”const-väitteet ja as const” ilmainen?

Kyllä – oppitunnin ”const-väitteet ja as const” 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 ”const-väitteet ja as const”?

Käyttäkää as const -syntaksia literaali- ja tuple-tyyppien täsmälliseen päättelyyn 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 ”const-väitteet ja as const”-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. Tyyppien levenemisen ja kaventamisen mekanismit
  2. Kontekstuaalinen tyypitys: päättely kontekstista
  3. Freshness ja ylimääräisten ominaisuuksien tarkistus
  4. const-väitteet ja as const
← Takaisin: TypeScript Academy