Статычныя ўласцівасці ў TypeScript
Давайце паглядзім, як звяртацца да статычных уласцівасцяў унутры аб'ектаў.
Хай у нас ёсць наступны клас са статычнай уласцівасцю:
class User {
public name: string;
public static salary: number = 1000;
constructor(name: string) {
this.name = name;
}
}
Давайце цяпер зробім метад, які выводзіць агульную заробную плату:
class User {
public name: string;
public static salary: number = 1000;
constructor(name: string) {
this.name = name;
}
getSalary(): number {
return User.salary; // звяртаемся па імені класа
}
}
Давайце цяпер зробім метад, які змяняе агульную заробную плату:
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;
}
}
Статычныя ўласцівасці будуць агульнымі для розных аб'ектаў. Гэта значыць, што пры змяненні ўласцівасці ў адным аб'екце, яно зменіцца і ў другім. Праверым гэта.
Створам два аб'екты нашага класа:
let user1: User = new User('john');
let user2: User = new User('eric');
Давайце зменым заробную плату для першага карыстальніка:
user1.setSalary(2000);
Праверым, што заробная плата змянілася і для другога карыстальніка:
console.log(user2.getSalary()); // 2000
Праверым, што заробная плата таксама змянілася ў уласцівасці самога класа:
console.log(User.salary); // 2000
У клас Student дадайце статычную
ўласцівасць university. Выведзіце дадзеную
ўласцівасць без аб'яўлення аб'екта.