Kaip apibrėžti ir naudoti TypeScript klases
TypeScript klasės suteikia aiškų ir struktūrizuotą būdą organizuoti duomenis ir elgesį objekte. Tai palengvina objektų ir sąvokų modeliavimą jūsų kode.
Kas yra TypeScript klasės?
Klasės yra pagrindinė TypeScript, programavimo kalbos, pagrįstos JavaScript, sąvoka. Klasės yra struktūrizuotas metodas objektams apibrėžti ir objektiniam programavimui (OOP) taikyti. TypeScript klasės yra tarsi planai objektams kurti, kurie apjungia logiškai susijusius duomenis ir metodus.
TypeScript turi visas JavaScript funkcijas ir taip pat apima statinį tipizavimą. Tai leidžia nurodyti TypeScript funkcijų, kintamųjų ir klasių duomenų tipus, kad būtų galima aptikti kompiliavimo klaidas. Be tipo saugumo, TypeScript klasės taip pat palaiko tokias sąvokas kaip paveldėjimas ir abstrakcija, kurios palengvina sudėtingų programų kūrimą.
Naudodami „TypeScript“ klases, galite sukurti aiškią klasių hierarchiją, kuri paveldėja savybes ir metodus. Tai skatina kodo pakartotinį naudojimą ir struktūrizavimą. Klasės konstruktoriai leidžia inicijuoti instancus ir užtikrina nuoseklų objektų kūrimą.
Kokia yra TypeScript klasių sintaksė?
TypeScript klasių žymėjimas yra panašus į ECMAScript 6 (ES6) žymėjimą ir yra išplėsta JavaScript klasių sintaksės versija. TypeScript klasė gali turėti įvairių elementų, kurie apibrėžia objektų struktūrą ir elgseną. Pagrindiniai komponentai yra:
- Savybės
- Konstruktoriai
- 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 galiojančias vertes.
class ClassName {
propertyName: propertyType;
}typescript- ClassName: klasės pavadinimas
- propertyName: savybės, kurią norite apibrėžti, pavadinimas
- propertyType: savybės duomenų tipas
Štai konkretus pavyzdys:
class Person {
name: string;
}typescriptPirmiausia apibrėžiama Person klasė su name tipo string savybe. Tai reiškia, kad Person klasės egzemplioriai turi name savybę, kurioje saugomi styginiai.
Konstruktorius
TypeScript konstruktorius yra specialus metodas, kuris iškviečiamas, kai sukuriama klasės instancė (objektas). Jis reikalingas objekto savybių inicijavimui. Konstruktorius iš esmės apibrėžia instancės pradinę būseną. Konstruktoriuje galima nurodyti parametrus, kad instancuojant TypeScript klases būtų perduodamos reikiamos reikšmės.
Pagrindinė konstruktoriaus sintaksė TypeScript kalboje yra tokia:
class ClassName {
constructor(parameter1: Type1, parameter2: Type2, ...) {
}
}typescript- konstruktorius: kiekviena klasė gali turėti vieną konstruktorių. Jei konstruktorius nėra apibrėžtas, pagal numatytuosius nustatymus sukuriama tuščia konstruktoriaus versija.
- parametras: Tipas: parametrai yra neprivalomi, priklausomai nuo klasės ir jos reikalavimų. Parametrai turėtų būti pažymėti jų duomenų tipais.
Konstruktoriaus pavyzdys:
class Person {
firstName: string;
lastName: string;
constructor(firstName: string, lastName: string) {
this.firstName = firstName;
this.lastName = lastName;
}
}typescriptPateiktame pavyzdyje klasė Person turi konstruktorių, kuris priima du parametrus firstName ir lastName. Sukuriant šios klasės instancą, šie parametrai perduodami, o konstruktorius inicijuoja instancos savybes firstName ir lastName atitinkamomis reikšmėmis. this nurodo dabartinę klasės instancą, kurioje vykdomas kodas.
Metodai
TypeScript kalboje metodai yra funkcijos, kurios gali būti apibrėžtos klasėse ir taikomos jų instancėms. Metodai leidžia atlikti tam tikrus veiksmus ar operacijas klasės kontekste.
class ClassName {
// ...
methodName(parameter1: Type1, parameter2: Type2, ...): ReturnType {
}
// ...
}typescript- methodName: metodo pavadinimas
- parameter: tipas: neprivalomi parametrai, kuriuos priima metodas
- ReturnType: 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 egzemplioriaus metodą, naudokite taško operatorius ., po kurio nurodykite metodo pavadinimą ir reikiamus argumentus, jei metodas reikalauja 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();typescriptgetFullName metodas naudojamas sukurti ir grąžinti asmens pilną vardą. Jis pasiekia firstName ir lastName savybių, apibrėžtų klasėje ir inicijuotų konstruktoriuje, vertes. Objektas person sukurtas naudojant raktinį žodį new, po kurio eina klasės pavadinimas ir atitinkami parametrai. Metodas sujungia du styginius, kai yra iškviečiamas, ir grąžina visą vardą kaip styginį. Todėl objekto person išvestis yra „John Doe“.
TypeScript klasės pavyzdžiai
TypeScript klasės turi įvairius mechanizmus, skirtus objektų struktūrai ir elgsenai organizuoti ir valdyti. Toliau pateikiame keletą koncepcijų, kaip naudoti TypeScript klases.
Prieiga
TypeScript siūlo tris prieigos modifikatorius: public, private ir protected, skirtus kontroliuoti prieigą prie savybių ir metodų klasės viduje ir už jos ribų.
- viešos (standartinės): savybės ir metodai, pažymėti
public, gali būti iškviečiami iš bet kur, tiek klasės viduje, tiek už jos ribų. - privatūs:
privatereiškia savybes ir metodus, kuriuos galima iškviesti tik pačioje klasėje. Jie yra neprieinami išorinėms kodo dalims. - apsaugotos: savybės ir metodai, pažymėti
protected, gali būti iškviečiami pačioje klasėje ir išvestinėse klasėse (paveldėjime), bet ne išoriniame 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();typescriptŠiame pavyzdyje socialSecurityNumber yra privati nuosavybė, prieinama tik Person klasėje. Tačiau greet metodą galima iškviesti iš klasės ribų.
Paveldėjimas
Paveldėjimas yra pagrindinė objektinio programavimo (OOP) sąvoka, naudojama TypeScript ir daugelyje kitų interneto programavimo kalbų. Ji leidžia sukurti naują klasę remiantis esama bazine klase arba viršklase. Išvestinė klasė (paveldėtoji klasė) paveldi bazinės klasės savybes ir metodus ir gali juos išplėsti arba pritaikyti.
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();typescriptNaudodama 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 paveldėdama name savybę iš Animal.
Tik skaityti
Galite naudoti readonly, kad TypeScript klasių ar objektų savybes deklaruotumėte kaip tik skaitymo. Tai reiškia, kad, kai tik skaitymo savybė yra inicijuota, jos vertės nebegalima 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,54typescriptMūsų pavyzdyje pi savybė yra tik skaitymo, ir ji yra inicijuojama konstruktoriuje. Po inicijavimo pi nebegali būti keičiama. Jei bandysite pakeisti pi vertę po inicijavimo, TypeScript sukurs kompiliacijos klaidą.
117a1597efe473942f630cae75678a0b
6fe9ad4655c8a5b1928748d3fe74ed9a
d8f0a02ba8214fdd5d685d3903e5f4f9
9ccb12577a29a4ff35b9ee4c2dcaa01d