Хосиятҳои статикӣ дар TypeScript

Биёед бубинем, ки чӣ гуна ба хосиятҳои статикӣ дар дохили объектҳо дастрасӣ пайдо кунем.

Бигзор мо синфи зеринро бо хосияти статикӣ дошта бошем:

typescriptclass User {
  public name: string;
  public static salary: number = 1000;
  
  constructor(name: string) {
    this.name = name;
  }
}

Биёед акнун методеро созем, ки маоши умумиро чоп мекунад:

typescriptclass User {
  public name: string;
  public static salary: number = 1000;
  
  constructor(name: string) {
    this.name = name;
  }
  
  getSalary(): number {
    return User.salary; // бо номи синф дастрасӣ меёбем
  }
}

Биёед акнун методеро созем, ки маоши умумиро тағйир медиҳад:

typescriptclass 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;
  }
}

Хосиятҳои статикӣ барои объектҳои гуногун умумӣ хоҳанд буд. Ин маъно дорад, ки ҳангоми тағйир додани хосият дар як объект, он дигареро низ тағйир медиҳад. Биёед инро тафтиш кунем.

Ду объекти синфи худро эҷод кунем:

typescriptlet user1: User = new User('john');
let user2: User = new User('eric');

Биёед маошро барои якумин корбар тағйир диҳем:

typescriptuser1.setSalary(2000);

Тафтиш кунем, ки маоши дуюмин корбар низ тағйир ёфтааст:

typescriptconsole.log(user2.getSalary()); // 2000

Тафтиш кунем, ки маош дар хосияти худи синф низ тағйир ёфтааст:

typescriptconsole.log(User.salary); // 2000
Задание 1

Ба синфи Student хосияти статикии university илова кунед. Ин хосиятро бе эҷоди объект чоп кунед.