TypeScript Academy · Oppitunti

Avainten uudelleennimeäminen as-syntaksilla mapped-tyypeissä

Nimetkää avaimet uudelleen tyyppimuunnoksen aikana

Oppitunti 4/413 vaihetta

Avainten uudelleennimeäminen as-syntaksilla mapped-tyypeissä 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.

Tervetuloa

TypeScript 4.1 lisäsi mapped-tyyppeihin `as`-lausekkeen, jonka avulla avaimille voi antaa uudet nimet osana tyyppimuunnosta.

Avainten uudelleennimeämisen perusteet

Lisää `as NewKeyType` avainmuuttujan perään, jotta voit nimetä avaimen uudelleen.
type Prefixed<T> = {
  [K in keyof T as `prefix_${string & K}`]: T[K]
};
type P = Prefixed<{ name: string }>;
// { prefix_name: string }

Avainten suodattaminen never-tyypillä

Palauta `never` `as`-osasta poistaaksesi kyseisen avaimen tuloksena olevasta tyypistä.
type OnlyStrings<T> = {
  [K in keyof T as T[K] extends string ? K : never]: T[K]
};

Getter-nimien muodostaminen

Käytä Capitalizea template literal -tyyppien kanssa getter-metodien nimien muodostamiseen.
type Getters<T> = {
  [K in keyof T as `get${Capitalize<string & K>}`]: () => T[K]
};
type UserGetters = Getters<{ name: string; age: number }>;
// { getName: () => string; getAge: () => number }

Setter-nimien muodostaminen

Muodosta vastaavasti setter-nimet tyypin ominaisuuksille.
type Setters<T> = {
  [K in keyof T as `set${Capitalize<string & K>}`]: (val: T[K]) => void
};

Käänteinen Record-tyyppi

Vaihda avaimet ja arvot keskenään avainten uudelleennimeämisen avulla.
type Invert<T extends Record<string, string>> = {
  [K in keyof T as T[K]]: K
};

Ehdollinen avainten uudelleennimeäminen

Käytä erilaisia avainten muunnoksia arvotyypin perusteella.
type MethodKeys<T> = {
  [K in keyof T as T[K] extends Function ? K : never]: T[K]
};

Yhdistäminen template literal -tyyppien kanssa

Käytä uudelleennimeämisessä template literal -tyyppejä nimiavaruudellisten avainten muodostamiseen.
type Namespaced<T, NS extends string> = {
  [K in keyof T as `${NS}::${string & K}`]: T[K]
};

Symbol-avainten käsittely

Avainten uudelleennimeämisen avulla voit käsitellä myös symbol-avaimia.

Käytännössä: FormData-tyyppi

Johda tyypitetystä tietomallista lomakeolio, jonka arvot ovat merkkijonoja.
type FormFields<T> = {
  [K in keyof T as K extends string ? K : never]: string
};

`as`-osan yhdistäminen ehdollisiin tyyppeihin

Avainten uudelleennimeäminen ja ehdolliset tyypit toimivat yhdessä, ja niiden avulla voidaan luoda erittäin ilmaisuvoimakkaita tyyppimuunnoksia.

Pikatarkistus

Mitä kyseiselle avaimelle tapahtuu, kun mapped-tyypin `as`-osasta palautetaan `never`?

Kertaus

Mapped-tyyppien `as`-osan avulla voit nimetä avaimia uudelleen, suodattaa niitä (`never`-arvon avulla) ja muuntaa niitä template literal -tyyppien ja ehtojen avulla. Se mahdollistaa tehokkaat mallit, kuten getter- ja setter-nimien muodostamisen sekä ominaisuuksien suodattamisen arvotyypin perusteella.
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 ”Avainten uudelleennimeäminen as-syntaksilla mapped-tyypeissä” ilmainen?

Kyllä – oppitunnin ”Avainten uudelleennimeäminen as-syntaksilla mapped-tyypeissä” 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 ”Avainten uudelleennimeäminen as-syntaksilla mapped-tyypeissä”?

Nimetkää avaimet uudelleen tyyppimuunnoksen aikana 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 ”Avainten uudelleennimeäminen as-syntaksilla mapped-tyypeissä”-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. Mapped-tyypit: oliotyyppien muuntaminen
  2. Mapped-tyyppien muuntimet: readonly ja ?
  3. Template literal -tyypit: merkkijonomallit
  4. Avainten uudelleennimeäminen as-syntaksilla mapped-tyypeissä
← Takaisin: TypeScript Academy