Proprietăți statice în TypeScript
Să vedem cum să accesăm proprietățile statice în interiorul obiectelor.
Să presupunem că avem următoarea clasă cu o proprietate statică:
class User {
public name: string;
public static salary: number = 1000;
constructor(name: string) {
this.name = name;
}
}
Acum să creăm o metodă care afișează salariul general:
class User {
public name: string;
public static salary: number = 1000;
constructor(name: string) {
this.name = name;
}
getSalary(): number {
return User.salary; // accesăm prin numele clasei
}
}
Acum să creăm o metodă care modifică salariul general:
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;
}
}
Proprietățile statice vor fi comune pentru diferite obiecte. Aceasta înseamnă că atunci când proprietatea se modifică într-un obiect, ea se va schimba și în celălalt. Să verificăm acest lucru.
Să creăm două obiecte ale clasei noastre:
let user1: User = new User('john');
let user2: User = new User('eric');
Să modificăm salariul pentru primul utilizator:
user1.setSalary(2000);
Să verificăm dacă salariul s-a schimbat și pentru al doilea utilizator:
console.log(user2.getSalary()); // 2000
Să verificăm dacă salariul s-a schimbat și în proprietatea clasei în sine:
console.log(User.salary); // 2000
În clasa Student adăugați o proprietate statică
university. Afișați această
proprietate fără a declara un obiect.