TypeScript Academy · Oppitunti

Edistynyt tyyppien rajaus

Opetelkaa käyttämään edistyneitä tyyppivartijoita ja ohjausvirtuanalyysiä monimutkaisten tyyppiehtojen käsittelyyn.

Oppitunti 1/310 vaihetta

Edistynyt tyyppien rajaus on ilmainen TypeScript Academy-oppitunti CoddyKitissä. Tämä on oppitunti 1/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.

Johdatus edistyneeseen tyyppien tarkennukseen

Edistyneen tyyppien tarkennuksen avulla voitte täsmentää monimutkaisia tyyppejä ajonaikaisesti edistyneillä tekniikoilla, kuten type guard -tarkistuksilla, ohjausvuon analyysillä ja omilla predikaateilla.

Näiden työkalujen avulla TypeScript-koodinne on turvallisempaa ja ennakoitavampaa.

Edistynyt tyyppien rajaus — kuvitus 1

Mitä tyyppien tarkennus on

Tyyppien tarkennus tarkoittaa laajemman tyypin (esimerkiksi string | number) muuntamista tarkemmaksi tyypiksi ajonaikaisten tarkistusten avulla.

Tyyppien tarkennus typeof-operaattorin avulla

typeof-operaattoria voidaan käyttää primitiivityyppien tarkentamiseen:

function printValue(value: string | number): void {
  if (typeof value === 'string') {
    console.log(`String: ${value}`);
  } else {
    console.log(`Number: ${value}`);
  }
}

printValue('Hello'); // String: Hello
printValue(42); // Number: 42

Tyyppien tarkennus instanceof-operaattorin avulla

instanceof-operaattoria voidaan käyttää luokkainstanssien tyypin tarkentamiseen:

class Dog {
  bark() {
    console.log('Woof!');
  }
}

class Cat {
  meow() {
    console.log('Meow!');
  }
}

function makeSound(animal: Dog | Cat): void {
  if (animal instanceof Dog) {
    animal.bark();
  } else {
    animal.meow();
  }
}

makeSound(new Dog()); // Woof!
makeSound(new Cat()); // Meow!

Omien type guard -tarkistusten käyttö

Voitte luoda omia type guard -funktioita tyyppien tarkempaa tarkentamista varten:

type Fish = { swim: () => void };
type Bird = { fly: () => void };

declare const animal: Fish | Bird;

function isFish(animal: Fish | Bird): animal is Fish {
  return (animal as Fish).swim !== undefined;
}

if (isFish(animal)) {
  animal.swim();
} else {
  animal.fly();

Ohjausvuon analyysi

TypeScriptin ohjausvuon analyysi tarkentaa tyyppejä automaattisesti koodinne loogisen etenemisen perusteella:

function getLength(value: string | string[]): number {
  if (Array.isArray(value)) {
    return value.length;
  } else {
    return value.length;
  }
}

console.log(getLength('Hello')); // 5
console.log(getLength(['a', 'b', 'c'])); // 3

Edistyneen tyyppien tarkennuksen hyödyt

Edistynyt tyyppien tarkennus parantaa koodianne seuraavasti:

  • Vähentämällä ajonaikaisia virheitä.
  • Tekemällä koodista turvallisempaa ja helpommin ymmärrettävää.
  • Tarjoamalla tarkat mahdollisuudet tyyppien käsittelyn hallintaan.

Harjoitustehtävä

Luokaa funktio, joka saa parametrina tyypin string | number ja kirjaa eri viestin kummallekin tyypille. Käyttäkää logiikan toteuttamiseen typeof-operaattoria.

Onnittelut

Onnittelut!

Olette oppineet käyttämään TypeScriptin edistyneitä tyyppien tarkennustekniikoita monimutkaisten tyyppien turvalliseen ja tehokkaaseen tarkentamiseen ja käsittelyyn. Harjoitelkaa näitä tekniikoita, jotta koodinne olisi vankempaa ja tyyppiturvallisempaa!

Edistynyt tyyppien rajaus — 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 ”Edistynyt tyyppien rajaus” ilmainen?

Kyllä – oppitunnin ”Edistynyt tyyppien rajaus” 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 ”Edistynyt tyyppien rajaus”?

Opetelkaa käyttämään edistyneitä tyyppivartijoita ja ohjausvirtuanalyysiä monimutkaisten tyyppiehtojen käsittelyyn. 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 1/3.

Kuinka kauan ”Edistynyt tyyppien rajaus”-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