TypeScript-däki statik aýratynlyklar
Obýektleriň içinde statik aýratynlyklara nädip ýüzlenmelidigine seredeliň.
Gowunyňda statik aýratynlygy bolan aşakdaky klasymyz bolsun:
class User {
public name: string;
public static salary: number = 1000;
constructor(name: string) {
this.name = name;
}
}
Indi umumy hakyda habar berýän metodu düzeliň:
class User {
public name: string;
public static salary: number = 1000;
constructor(name: string) {
this.name = name;
}
getSalary(): number {
return User.salary; // klasyň ady bilen ýüzlenýäris
}
}
Indi umumy hakyda üýtgetýän metodu düzeliň:
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;
}
}
Statik aýratynlyklar dürli obýektler üçin umumy bolar. Bu ýagdaýda, aýratynlygy bir obýektde üýtgetsek, ol beýlekisinde hem üýtgerýär. Muny barlalyň.
Klasymyzdan iki obýekt düzeliň:
let user1: User = new User('john');
let user2: User = new User('eric');
Birinci ulanyjy üçin hakyda üýtgedeliň:
user1.setSalary(2000);
Ikinji ulanyjy üçin hem hakyda üýtgedilendigini barlalyň:
console.log(user2.getSalary()); // 2000
Hakyda özüniň klasynyň aýratynlygynda hem üýtgedilendigini barlalyň:
console.log(User.salary); // 2000
Student klasyna statik aýratynlyk university goşuň. Bu aýratynlygy obýekt döretmän çap ediň.