TypeScript Academy · Oppitunti

Ehdolliset tyypit

Tutustukaa siihen, miten ehdollisilla tyypeillä luodaan ehtojen perusteella dynaamisesti mukautuvia, joustavia ja uudelleenkäytettäviä tyyppimäärittelyjä.

Oppitunti 3/310 vaihetta

Ehdolliset tyypit on ilmainen TypeScript Academy-oppitunti CoddyKitissä. Tämä on oppitunti 3/3. 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ä 3 oppituntia.

Ehdollisten tyyppien esittely

TypeScriptin ehdollisten tyyppien avulla voit luoda tyyppejä, jotka mukautuvat dynaamisesti ehdon perusteella. Näin koodistasi tulee joustavampaa ja uudelleenkäytettävämpää.

Niissä käytetään JavaScriptin ehdollisen (ternary) operaattorin kaltaista syntaksia.

Ehdolliset tyypit — kuvitus 1

Mitä ehdolliset tyypit ovat

Ehdollisten tyyppien avulla voit määrittää tyypin, joka riippuu toisesta tyypistä. Perussyntaksi on seuraava:

T extends U ? X : Y

Tämä tarkoittaa: jos T laajentaa U-tyyppiä, tyypiksi tulee X; muussa tapauksessa se on Y.

Ehdollisten tyyppien perusesimerkki

Tässä on yksinkertainen esimerkki:

type IsString<T> = T extends string ? 'Yes' : 'No';

// Test cases
type A = IsString<string>; // 'Yes'
type B = IsString<number>; // 'No'

Ehdollisten tyyppien käyttäminen funktioiden ylikuormituksissa

Ehdolliset tyypit voivat yksinkertaistaa funktioiden ylikuormituksia määrittämällä palautustyypit dynaamisesti:

type ReturnType<T> = T extends (...args: any[]) => infer R ? R : never;

function getData(): string {
  return 'Hello';
}

type DataType = ReturnType<typeof getData>; // string

Jakautuvat ehdolliset tyypit

Kun ehdollisia tyyppejä käytetään union-tyyppien kanssa, ne kohdistetaan erikseen unionin jokaiseen jäseneen:

type ToArray<T> = T extends any ? T[] : never;

type A = ToArray<string | number>;
// A = string[] | number[]

Ehdollisten tyyppien yhdistäminen mapped-tyyppien kanssa

Voit yhdistää ehdollisia tyyppejä mapped-tyyppien kanssa tehokkaiden tyyppimuunnosten luomiseksi:

type User = {
  id: number;
  name: string;
  isAdmin?: boolean;
};

type MakeRequired<T> = {
  [K in keyof T]-?: T[K] extends undefined ? never : T[K];
};

type RequiredUser = MakeRequired<User>;
// { id: number; name: string; isAdmin: never; }

Ehdollisten tyyppien yleiset käyttötapaukset

Ehdollisia tyyppejä käytetään yleisesti seuraaviin tarkoituksiin:

  • Palautustyyppien tai parametrien päättelyyn.
  • Union- ja intersection-tyyppien muuntamiseen.
  • Utility-tyyppien, kuten Exclude-, Extract- ja NonNullable-tyyppien, luomiseen.

Harjoitustehtävä

Luo ehdollinen tyyppi, joka tarkistaa, onko tyyppi taulukko, ja palauttaa siinä tapauksessa sen alkiotyypin; muussa tapauksessa se palauttaa tyypin itsensä.

Onneksi olkoon!

Olet oppinut käyttämään ehdollisia tyyppejä dynaamisten ja uudelleenkäytettävien tyyppimäärittelyjen luomiseen TypeScriptissä. Harjoittele näitä käsitteitä, jotta voit kirjoittaa tehokkaampaa ja joustavampaa TypeScript-koodia!

Ehdolliset tyypit — kuvitus 10
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 ”Ehdolliset tyypit” ilmainen?

Kyllä – oppitunnin ”Ehdolliset tyypit” 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ä 3 oppituntia.

Mitä opin oppitunnilla ”Ehdolliset tyypit”?

Tutustukaa siihen, miten ehdollisilla tyypeillä luodaan ehtojen perusteella dynaamisesti mukautuvia, joustavia ja uudelleenkäytettäviä tyyppimäärittelyjä. 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 3/3.

Kuinka kauan ”Ehdolliset tyypit”-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. Edistynyt tyyppien rajaus
  2. Luokkien edistyneet ominaisuudet
  3. Ehdolliset tyypit
← Takaisin: TypeScript Academy