Kako opredeliti in uporabljati razrede TypeScript
Razredi TypeScript zagotavljajo jasen in strukturiran način za organizacijo podatkov in vedenja v objektu. To vam olajša modeliranje entitet in konceptov v vaši kodi.
Kaj so razredi TypeScript?
Razredi so ključni pojem v TypeScriptu, ki je programski jezik, temelječ na JavaScriptu. Razredi predstavljajo strukturirano metodo za definiranje objektov in za uporabo objektno usmerjenega programiranja (OOP). Razredi v TypeScriptu so kot načrti za ustvarjanje objektov, ki združujejo logično povezane podatke in metode.
TypeScript vsebuje vse funkcije JavaScript in vključuje tudi statično tipiziranje. To vam omogoča, da določite podatkovne tipe za funkcije, spremenljivke in razrede TypeScript, tako da lahko odkrijete napake v času kompiliranja. Poleg varnosti tipov razredi TypeScript podpirajo tudi koncepte, kot sta dedovanje in abstrakcija, kar olajšuje razvoj kompleksnih aplikacij.
S pomočjo razredov TypeScript lahko ustvarite jasno hierarhijo razredov, ki dedujejo lastnosti in metode. To spodbuja ponovno uporabo in strukturiranje kode. Konstruktorji razredov omogočajo inicializacijo instanc in zagotavljajo dosledno ustvarjanje objektov.
Kakšna je sintaksa za razrede TypeScript?
Notacija razredov TypeScript je podobna notaciji ECMAScript 6 (ES6) in je razširjena različica sintakse razredov JavaScript. Razred TypeScript lahko vsebuje različne elemente za opredelitev strukture in obnašanja objektov. Glavne komponente so:
- Lastnosti
- Konstruktorji
- Metode
Lastnosti
Lastnosti določajo stanje objekta. Shranjujejo vrednosti podatkov in jih je mogoče opremiti z opombami o podatkovnih tipih, tako da imajo samo veljavne vrednosti.
class ClassName {
propertyName: propertyType;
}typescript- ClassName: ime razreda
- propertyName: ime lastnosti, ki jo želite definirati
- propertyType: podatkovni tip lastnosti
Tukaj je konkreten primer:
class Person {
name: string;
}typescriptNajprej je opredeljena razred Person z lastnostjo name tipa string. To pomeni, da imajo primeri razreda Person lastnost name, ki shranjuje nize.
Konstruktor
Konstruktor v TypeScriptu je posebna metoda, ki se pokliče ob ustvarjanju instance razreda (objekta). Potreben je za inicializacijo lastnosti objekta. Konstruktor v bistvu definira začetno stanje instance. V konstruktorju lahko določite parametre za prenos vrednosti ob instanciranju razredov TypeScript.
Osnovna sintaksa konstruktorja v TypeScriptu je:
class ClassName {
constructor(parameter1: Type1, parameter2: Type2, ...) {
}
}typescript- konstruktor: vsaka razred lahko ima en konstruktor. Če konstruktor ni definiran, se privzeto ustvari prazen konstruktor.
- parameter: Tip: parametri so neobvezni, odvisno od razreda in njegovih zahtev. Parametri morajo biti označeni s svojimi podatkovnimi tipi.
Primer konstruktorja:
class Person {
firstName: string;
lastName: string;
constructor(firstName: string, lastName: string) {
this.firstName = firstName;
this.lastName = lastName;
}
}typescriptV zgornjem primeru ima razred Person konstruktor, ki sprejema dva parametra firstName in lastName. Pri ustvarjanju instance tega razreda se ti parametri prenesejo, konstruktor pa inicializira lastnosti firstName in lastName instance z ustreznimi vrednostmi. this se nanaša na trenutno instanco razreda, na kateri se izvaja koda.
Metode
V TypeScriptu so metode funkcije, ki jih je mogoče definirati v razredih in uporabiti v njihovih primerkih. Metode omogočajo izvajanje določenih dejanj ali operacij v kontekstu razreda.
class ClassName {
// ...
methodName(parameter1: Type1, parameter2: Type2, ...): ReturnType {
}
// ...
}typescript- methodName: ime metode
- parameter: Tip: neobvezni parametri, ki jih metoda sprejema
- vrstaVrsta: to je vrsta podatkov, ki določa vrednost, ki jo metoda vrne. Če metoda ne vrne ničesar, lahko navedete
void.
Za dostop do lastnosti ali klic metode na primerku razreda uporabite operator piko ., ki mu sledi ime metode in zahtevani argumenti, če metoda pričakuje parametre.
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();typescriptMetoda getFullName se uporablja za ustvarjanje in vrnitev polnega imena osebe. Dostopa do vrednosti lastnosti firstName in lastName, ki so definirane v razredu in inicializirane v konstruktorju. Objekt person se ustvari s ključno besedo new, ki ji sledi ime razreda in ustrezni parametri. Metoda pri klicu združi dva niza in vrne polno ime kot niz. Izhod za objekt person je torej „John Doe“.
Primeri razredov TypeScript
Razredi TypeScript imajo različne mehanizme za organizacijo in nadzor strukture in obnašanja objektov. V nadaljevanju predstavljamo nekaj konceptov za uporabo razredov TypeScript.
Dostop
TypeScript ponuja tri modifikatorje dostopa: public, private in protected za nadzor dostopa do lastnosti in metod znotraj in zunaj razreda.
- javno (standardno): lastnosti in metode, označene s
public, se lahko pokličejo od kjerkoli, tako znotraj kot zunaj razreda. - zasebno:
privatese nanaša na lastnosti in metode, ki jih je mogoče poklicati le znotraj razreda. Zunanji deli kode do njih nimajo dostopa. - zaščiteno: lastnosti in metode, označene s
protected, lahko pokliče razred sam in izvedeni razredi (v dedovanju), vendar ne zunanji koda.
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();typescriptV tem primeru je socialSecurityNumber zasebna lastnina, do katere je mogoče dostopati samo znotraj razreda Person. Vendar pa lahko metodo greet pokličete zunaj razreda.
Dedovanje
Dedovanje je temeljni pojem v objektno usmerjenem programiranju (OOP), ki se uporablja v TypeScriptu in mnogih drugih internetnih programskih jezikih. Omogoča ustvarjanje nove razreda na podlagi obstoječega osnovnega razreda ali nadrazreda. Izpeljani razred (podrazred) podeduje lastnosti in metode osnovnega razreda in jih lahko razširi ali prilagodi.
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();typescriptZ uporabo ključne besede extends podrazred Dog podeduje lastnosti in metode iz nadrazreda Animal. Razred Dog nadomesti metodo makeSound, da doda določeno vedenje, hkrati pa podeduje lastnost name iz Animal.
Samo za branje
Z readonly lahko deklarirate lastnosti razredov ali objektov TypeScript kot samo za branje. To pomeni, da ko je lastnost samo za branje inicializirana, njene vrednosti ni več mogoče spremeniti.
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,54typescriptV našem primeru je lastnost pi samo za branje in se inicializira v konstruktorju. Po inicializaciji se pi ne more več spreminjati. Če poskušate spremeniti vrednost pi po inicializaciji, bo TypeScript ustvaril napako pri prevajanju.
117a1597efe473942f630cae75678a0b
6fe9ad4655c8a5b1928748d3fe74ed9a
d8f0a02ba8214fdd5d685d3903e5f4f9
bff069b69f77dc61e074e3909fcf800c
7a031ebda636ff7fd6d7bc2196481fc2