Propriétés statiques en TypeScript

Voyons comment accéder aux propriétés statiques à l'intérieur des objets.

Supposons que nous ayons la classe suivante avec une propriété statique :

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

Créons maintenant une méthode affichant le salaire général :

typescriptclass User {
  public name: string;
  public static salary: number = 1000;
  
  constructor(name: string) {
    this.name = name;
  }
  
  getSalary(): number {
    return User.salary; // on accède par le nom de la classe
  }
}

Créons maintenant une méthode modifiant le salaire général :

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

Les propriétés statiques seront communes aux différents objets. Cela signifie que lors du changement de la propriété dans un objet, elle changera également dans l'autre. Vérifions cela.

Créeons deux objets de notre classe :

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

Modifions le salaire pour le premier utilisateur :

typescriptuser1.setSalary(2000);

Vérifions que le salaire a changé également pour le deuxième utilisateur :

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

Vérifions que le salaire a également changé dans la propriété de la classe elle-même :

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

Dans la classe Student ajoutez une propriété statique university. Affichez cette propriété sans déclarer d'objet.