Ty­peSc­ript klasės suteikia aiškų ir struk­tū­ri­zuo­tą būdą or­ga­ni­zuo­ti duomenis ir elgesį objekte. Tai pa­leng­vi­na objektų ir sąvokų mo­de­lia­vi­mą jūsų kode.

Kas yra Ty­peSc­ript klasės?

Klasės yra pag­rin­di­nė Ty­peSc­ript, prog­ra­ma­vi­mo kalbos, pagrįstos Ja­vaSc­ript, sąvoka. Klasės yra struk­tū­ri­zuo­tas metodas objektams apibrėžti ir ob­jek­ti­niam prog­ra­ma­vi­mui (OOP) taikyti. Ty­peSc­ript klasės yra tarsi planai objektams kurti, kurie apjungia logiškai su­si­ju­sius duomenis ir metodus.

Ty­peSc­ript turi visas Ja­vaSc­ript funkcijas ir taip pat apima statinį ti­pi­za­vi­mą. Tai leidžia nurodyti Ty­peSc­ript funkcijų, kintamųjų ir klasių duomenų tipus, kad būtų galima aptikti kom­pi­lia­vi­mo klaidas. Be tipo saugumo, Ty­peSc­ript klasės taip pat palaiko tokias sąvokas kaip pa­vel­dė­ji­mas ir abst­rak­ci­ja, kurios pa­leng­vi­na sudėtingų programų kūrimą.

Naudodami „Ty­peSc­ript“ klases, galite sukurti aiškią klasių hie­rar­chi­ją, kuri paveldėja savybes ir metodus. Tai skatina kodo pa­kar­to­ti­nį naudojimą ir struk­tū­ri­za­vi­mą. Klasės konst­ruk­to­riai leidžia ini­ci­juo­ti instancus ir užtikrina nuoseklų objektų kūrimą.

Kokia yra Ty­peSc­ript klasių sintaksė?

Ty­peSc­ript klasių žymėjimas yra panašus į EC­MASc­ript 6 (ES6) žymėjimą ir yra išplėsta Ja­vaSc­ript klasių sintaksės versija. Ty­peSc­ript klasė gali turėti įvairių elementų, kurie apibrėžia objektų struktūrą ir elgseną. Pag­rin­di­niai kom­po­nen­tai yra:

  • Savybės
  • Konst­ruk­to­riai
  • Metodai

Savybės

Savybės nulemia objekto būseną. Jos saugo duomenų vertes ir gali būti pažymėtos duomenų tipais, kad turėtų tik ga­lio­jan­čias vertes.

class ClassName {
    propertyName: propertyType;
}
ty­pesc­ript
  • ClassName: klasės pa­va­di­ni­mas
  • pro­per­ty­Na­me: savybės, kurią norite apibrėžti, pa­va­di­ni­mas
  • pro­per­ty­Ty­pe: savybės duomenų tipas

Štai konkretus pavyzdys:

class Person {
    name: string;
}
ty­pesc­ript

Pir­miau­sia api­brė­žia­ma Person klasė su name tipo string savybe. Tai reiškia, kad Person klasės eg­zemp­lio­riai turi name savybę, kurioje saugomi styginiai.

Konst­ruk­to­rius

Ty­peSc­ript konst­ruk­to­rius yra specialus metodas, kuris iš­kvie­čia­mas, kai sukuriama klasės instancė (objektas). Jis rei­ka­lin­gas objekto savybių ini­ci­ja­vi­mui. Konst­ruk­to­rius iš esmės apibrėžia instancės pradinę būseną. Konst­ruk­to­riu­je galima nurodyti pa­ra­met­rus, kad ins­tan­cuo­jant Ty­peSc­ript klases būtų per­duo­da­mos reikiamos reikšmės.

Pag­rin­di­nė konst­ruk­to­riaus sintaksė Ty­peSc­ript kalboje yra tokia:

class ClassName {
    constructor(parameter1: Type1, parameter2: Type2, ...) {
    }
}
ty­pesc­ript
  • konst­ruk­to­rius: kiekviena klasė gali turėti vieną konst­ruk­to­rių. Jei konst­ruk­to­rius nėra api­brėž­tas, pagal nu­ma­ty­tuo­sius nu­sta­ty­mus sukuriama tuščia konst­ruk­to­riaus versija.
  • pa­ra­met­ras: Tipas: pa­ra­met­rai yra ne­pri­va­lo­mi, pri­klau­so­mai nuo klasės ir jos rei­ka­la­vi­mų. Pa­ra­met­rai turėtų būti pažymėti jų duomenų tipais.

Konst­ruk­to­riaus pavyzdys:

class Person {
    firstName: string;
    lastName: string;
    constructor(firstName: string, lastName: string) {
        this.firstName = firstName;
        this.lastName = lastName;
    }
}
ty­pesc­ript

Pa­teik­ta­me pavyzdyje klasė Person turi konst­ruk­to­rių, kuris priima du pa­ra­met­rus firstName ir lastName. Sukuriant šios klasės instancą, šie pa­ra­met­rai per­duo­da­mi, o konst­ruk­to­rius ini­ci­juo­ja instancos savybes firstName ir lastName ati­tin­ka­mo­mis reikš­mė­mis. this nurodo dabartinę klasės instancą, kurioje vykdomas kodas.

Metodai

Ty­peSc­ript kalboje metodai yra funkcijos, kurios gali būti api­brėž­tos klasėse ir taikomos jų ins­tan­cėms. Metodai leidžia atlikti tam tikrus veiksmus ar ope­ra­ci­jas klasės kontekste.

class ClassName {
    // ...
    methodName(parameter1: Type1, parameter2: Type2, ...): ReturnType {
    }
    // ...
}
ty­pesc­ript
  • met­hod­Na­me: metodo pa­va­di­ni­mas
  • parameter: tipas: ne­pri­va­lo­mi pa­ra­met­rai, kuriuos priima metodas
  • Re­turn­Ty­pe: tai duomenų tipas, kuris nustato vertę, kurią grąžina metodas. Jei metodas nieko negrąžina, galite nurodyti void.

Norėdami pasiekti savybę arba iškviesti klasės eg­zemp­lio­riaus metodą, naudokite taško ope­ra­to­rius ., po kurio nu­ro­dy­ki­te metodo pa­va­di­ni­mą ir reikiamus ar­gu­men­tus, jei metodas rei­ka­lau­ja parametrų.

class Person {
    firstName: string;
    lastName: string;
    constructor(firstName: string, lastName: string) {
        this.firstName = firstName;
        this.lastName = lastName;
    }
    getFullName(): string {
        return this.firstName + " " + this.lastName;
    }
}
const person = new Person("John", "Doe");
const fullName = person.getFullName();
ty­pesc­ript

getFullName metodas nau­do­ja­mas sukurti ir grąžinti asmens pilną vardą. Jis pasiekia firstName ir lastName savybių, apibrėžtų klasėje ir ini­ci­juo­tų konst­ruk­to­riu­je, vertes. Objektas person sukurtas naudojant raktinį žodį new, po kurio eina klasės pa­va­di­ni­mas ir ati­tin­ka­mi pa­ra­met­rai. Metodas sujungia du styginius, kai yra iš­kvie­čia­mas, ir grąžina visą vardą kaip styginį. Todėl objekto person išvestis yra „John Doe“.

Ty­peSc­ript klasės pa­vyz­džiai

Ty­peSc­ript klasės turi įvairius me­cha­niz­mus, skirtus objektų struk­tū­rai ir elgsenai or­ga­ni­zuo­ti ir valdyti. Toliau pa­tei­kia­me keletą kon­cep­ci­jų, kaip naudoti Ty­peSc­ript klases.

Prieiga

Ty­peSc­ript siūlo tris prieigos mo­di­fi­ka­to­rius: public, private ir protected, skirtus kont­ro­liuo­ti prieigą prie savybių ir metodų klasės viduje ir už jos ribų.

  • viešos (stan­dar­ti­nės): savybės ir metodai, pažymėti public, gali būti iš­kvie­čia­mi iš bet kur, tiek klasės viduje, tiek už jos ribų.
  • privatūs: private reiškia savybes ir metodus, kuriuos galima iškviesti tik pačioje klasėje. Jie yra ne­pri­ei­na­mi išorinėms kodo dalims.
  • ap­sau­go­tos: savybės ir metodai, pažymėti protected, gali būti iš­kvie­čia­mi pačioje klasėje ir iš­ves­ti­nė­se klasėse (pa­vel­dė­ji­me), bet ne iš­ori­nia­me kode.
class Person {
    private socialSecurityNumber: string;
    constructor(ssn: string) {
        this.socialSecurityNumber = ssn;
    }
    greet() {
        console.log("Hello, I am a person with SSN: " + this.socialSecurityNumber);
    }
}
const person = new Person("123-45-6789");
person.greet();
ty­pesc­ript

Šiame pavyzdyje socialSecurityNumber yra privati nuosavybė, prieinama tik Person klasėje. Tačiau greet metodą galima iškviesti iš klasės ribų.

Pa­vel­dė­ji­mas

Pa­vel­dė­ji­mas yra pag­rin­di­nė ob­jek­ti­nio prog­ra­ma­vi­mo (OOP) sąvoka, naudojama Ty­peSc­ript ir daugelyje kitų interneto prog­ra­ma­vi­mo kalbų. Ji leidžia sukurti naują klasę remiantis esama bazine klase arba viršklase. Išvestinė klasė (pa­vel­dė­to­ji klasė) paveldi bazinės klasės savybes ir metodus ir gali juos išplėsti arba pri­tai­ky­ti.

class Animal {
    name: string;
    constructor(name: string) {
        this.name = name;
    }
    makeSound() {
        console.log("Some generic sound");
    }
}
class Dog extends Animal {
    makeSound() {
        console.log(this.name + " barks");
    }
}
const myDog = new Dog("Buddy");
myDog.makeSound();
ty­pesc­ript

Naudodama raktinį žodį extends, vaiko klasė Dog paveldi savybes ir metodus iš tėvų klasės Animal. Klasė Dog perrašo makeSound metodą, kad pridėtų konkretų elgesį, tuo pačiu pa­vel­dė­da­ma name savybę iš Animal.

Tik skaityti

Galite naudoti readonly, kad Ty­peSc­ript klasių ar objektų savybes dekla­ruo­tu­mė­te kaip tik skaitymo. Tai reiškia, kad, kai tik skaitymo savybė yra ini­ci­juo­ta, jos vertės ne­be­ga­li­ma keisti.

class Circle {
    readonly pi: number = 3.14159;
    radius: number;
    constructor(radius: number) {
        this.radius = radius;
    }
    getArea() {
        return this.pi    *this.radius*    this.radius;
    }
}
const myCircle = new Circle(5);
console.log(myCircle.getArea()); // Output: ≈ 78,54
ty­pesc­ript

Mūsų pavyzdyje pi savybė yra tik skaitymo, ir ji yra ini­ci­juo­ja­ma konst­ruk­to­riu­je. Po ini­ci­ja­vi­mo pi nebegali būti keičiama. Jei bandysite pakeisti pi vertę po ini­ci­ja­vi­mo, Ty­peSc­ript sukurs kom­pi­lia­ci­jos klaidą.

117a1597efe473942f630cae75678a0b

6fe9ad4655c8a5b1928748d3fe74ed9a

d8f0a02ba8214fdd5d685d3903e5f4f9

9ccb12577a29a4ff35b9ee4c2dcaa01d

Go to Main Menu