Statische eigenschappen in TypeScript
Laten we eens kijken hoe we toegang krijgen tot statische eigenschappen binnen objecten.
Stel dat we de volgende klasse hebben met een statische eigenschap:
class User {
public name: string;
public static salary: number = 1000;
constructor(name: string) {
this.name = name;
}
}
Laten we nu een methode maken die het totale salaris weergeeft:
class User {
public name: string;
public static salary: number = 1000;
constructor(name: string) {
this.name = name;
}
getSalary(): number {
return User.salary; // we benaderen via de klassenaam
}
}
Laten we nu een methode maken die het totale salaris wijzigt:
class User {
public name: string;
public static salary: number = 1000;
constructor(name: string) {
this.name = name;
}
getSalary(): number {
return User.salary;
}
setSalary(salary: number) {
User.salary = salary;
}
}
Statische eigenschappen zijn gemeenschappelijk voor verschillende objecten. Dit betekent dat wanneer de eigenschap in één object wordt gewijzigd, deze ook in het andere verandert. Laten we dit controleren.
Laten we twee objecten van onze klasse maken:
let user1: User = new User('john');
let user2: User = new User('eric');
Laten we het salaris voor de eerste gebruiker wijzigen:
user1.setSalary(2000);
Laten we controleren of het salaris ook is gewijzigd voor de tweede gebruiker:
console.log(user2.getSalary()); // 2000
Laten we controleren of het salaris ook is gewijzigd in de eigenschap van de klasse zelf:
console.log(User.salary); // 2000
Voeg een statische eigenschap university toe aan de klasse Student.
Geef deze eigenschap weer zonder een object aan te maken.