TypeScript да статик хусусиятлар
Келгила, объектлар ичида статик хусусиятларга қандай мурожаат қилишни кўрамиз.
Бизда куйидаги статик хусусиятга эга класс бор дейлик:
class User {
public name: string;
public static salary: number = 1000;
constructor(name: string) {
this.name = name;
}
}
Келгила, endi умумий маошни чиқарувчи метод ясаймиз:
class User {
public name: string;
public static salary: number = 1000;
constructor(name: string) {
this.name = name;
}
getSalary(): number {
return User.salary; // класс номи орқали мурожаат қиламиз
}
}
Келгила, endi умумий маошни ўзгартирадиган метод ясаймиз:
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 қўшинг. Бундай хусусиятни объект
эълон қилмасдан чиқаринг.