TypeScript Academy · Oppitunti

TypeScript-luokat ja konstruktorit

Määrittäkää luokkia tyypitetyillä ominaisuuksilla ja konstruktoreilla

Oppitunti 1/413 vaihetta

TypeScript-luokat ja konstruktorit on ilmainen TypeScript Academy-oppitunti CoddyKitissä. Tämä on oppitunti 1/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-luokat ovat JavaScript-luokkia, joihin on lisätty tyyppimääritykset. Ne yhdistävät tiedot ja toiminnan tyypitetyksi olio-ohjelmointirakenteeksi.

Luokan määrittäminen ominaisuuksineen

Määritelkää luokan ominaisuudet luokan alussa ja ilmoittakaa niiden tyypit. TypeScript tarkistaa kaikki käyttötavat.
class Person {
  name: string;
  age: number;

  constructor(name: string, age: number) {
    this.name = name;
    this.age = age;
  }
}

Parametriominaisuuksien lyhyt syntaksi

Lisätkää konstruktorin parametrin eteen käyttöoikeusmäärite, jotta luokan ominaisuus luodaan ja alustetaan automaattisesti.
class Person {
  constructor(
    public name: string,
    private age: number
  ) {} // properties created automatically
}

Tyypitetyt metodit

Luokan metodeissa käytetään samoja parametrien ja paluuarvojen tyyppimäärityksiä kuin tavallisissa funktioissa.
class Calculator {
  add(a: number, b: number): number {
    return a + b;
  }
}

Getterit ja setterit

Käyttäkää get- ja set-avainsanoja laskennallisten ominaisuuksien luomiseen. TypeScript tarkistaa niiden tyypit.
class Circle {
  constructor(private radius: number) {}
  get area(): number { return Math.PI * this.radius ** 2; }
  set r(v: number) { this.radius = v; }
}

Luokka tyyppinä

Luokka määrittää sekä arvon eli konstruktorifunktion että tyypin eli instanssin rakenteen. Käyttäkää luokan nimeä tyyppimäärityksenä.
class Dog { name = 'Rex'; bark() { return 'Woof'; } }
const d: Dog = new Dog();

Staattiset jäsenet

Staattiset ominaisuudet ja metodit kuuluvat itse luokalle eivätkä sen instansseille. Käyttäkää niitä luokan nimen kautta.
class MathHelper {
  static PI = 3.14159;
  static square(n: number): number { return n * n; }
}
console.log(MathHelper.PI);

Luokkaperintä

Käyttäkää `extends`-avainsanaa perimiseen perusluokasta. Kutsukaa konstruktorissa `super()`-kutsua yliluokan alustamiseksi.
class Animal {
  constructor(public name: string) {}
  speak(): string { return '...'; }
}
class Dog extends Animal {
  speak(): string { return 'Woof!'; }
}

Abstraktit luokat

Abstrakteista luokista ei voi luoda instansseja. Ne määrittävät sopimuksen, jonka aliluokkien on toteutettava.
abstract class Shape {
  abstract area(): number;
  describe(): string { return `Area: ${this.area()}`; }
}
class Square extends Shape {
  constructor(private side: number) { super(); }
  area() { return this.side ** 2; }
}

this-tyyppi luokissa

`this`-tyyppi viittaa nykyiseen instanssityyppiin ja mahdollistaa ketjutettavat eli builder-rajapinnat oikeine paluutyyppeineen.
class Builder {
  private parts: string[] = [];
  add(p: string): this { this.parts.push(p); return this; }
  build(): string { return this.parts.join(','); }
}

Luokka, rajapinta ja tyyppi

Luokat ovat ajonaikaisia arvoja, joilla on konstruktorit. Rajapinnat ja tyyppialiasit ovat vain käännösaikaisia tyyppirakenteita. Käyttäkää luokkia, kun tarvitsette instanssien luomista ja metodeja.

Pikatarkistus

Mikä vaikutus on sillä, että TypeScriptissä konstruktorin parametrin eteen lisätään `public`?

Kertaus

TypeScript-luokat lisäävät tyypit JavaScript-luokkiin. Käyttäkää parametriominaisuuksia tiiviisiin määrittelyihin, käyttöoikeusmääritteitä kapselointiin ja abstrakteja luokkia aliluokkien sopimusten valvomiseen.
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 ”TypeScript-luokat ja konstruktorit” ilmainen?

Kyllä – oppitunnin ”TypeScript-luokat ja konstruktorit” 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 ”TypeScript-luokat ja konstruktorit”?

Määrittäkää luokkia tyypitetyillä ominaisuuksilla ja konstruktoreilla 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/4.

Kuinka kauan ”TypeScript-luokat ja konstruktorit”-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. TypeScript-luokat ja konstruktorit
  2. public-, private- ja protected-muuntimet
  3. readonly-ominaisuudet ja parameter properties
  4. Interface-määrittelyjen toteuttaminen luokilla
← Takaisin: TypeScript Academy