Properti Statis dalam TypeScript

Mari kita lihat cara mengakses properti statis di dalam objek.

Misalkan kita memiliki kelas berikut dengan properti statis:

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

Sekarang mari buat metode yang menampilkan gaji umum:

typescriptclass User {
  public name: string;
  public static salary: number = 1000;
  
  constructor(name: string) {
    this.name = name;
  }
  
  getSalary(): number {
    return User.salary; // mengakses melalui nama kelas
  }
}

Sekarang mari buat metode yang mengubah gaji umum:

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

Properti statis akan menjadi umum untuk berbagai objek. Ini berarti bahwa ketika properti diubah dalam satu objek, itu akan berubah juga di objek lainnya. Mari kita periksa.

Mari buat dua objek dari kelas kita:

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

Mari ubah gaji untuk pengguna pertama:

typescriptuser1.setSalary(2000);

Mari periksa apakah gaji juga berubah untuk pengguna kedua:

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

Mari periksa apakah gaji juga berubah di properti kelas itu sendiri:

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

Ke dalam kelas Student tambahkan properti statis university. Tampilkan properti ini tanpa mendeklarasikan objek.