Хосиятҳои статикӣ дар 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 илова кунед. Ин хосиятро бе эҷоди объект чоп кунед.