Edistynyt tyyppien rajaus
Opetelkaa käyttämään edistyneitä tyyppivartijoita ja ohjausvirtuanalyysiä monimutkaisten tyyppiehtojen käsittelyyn.
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.

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: 42Tyyppien 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'])); // 3Edistyneen 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!

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
- Edistynyt tyyppien rajaus
- Luokkien edistyneet ominaisuudet
- Ehdolliset tyypit