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:

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

Indi umumy hakyda habar berýän metodu düzeliň:

typescriptclass 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ň:

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

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ň:

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

Birinci ulanyjy üçin hakyda üýtgedeliň:

typescriptuser1.setSalary(2000);

Ikinji ulanyjy üçin hem hakyda üýtgedilendigini barlalyň:

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

Hakyda özüniň klasynyň aýratynlygynda hem üýtgedilendigini barlalyň:

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

Student klasyna statik aýratynlyk university goşuň. Bu aýratynlygy obýekt döretmän çap ediň.