Thuộc tính tĩnh trong TypeScript
Hãy xem cách truy cập vào các thuộc tính tĩnh bên trong các đối tượng.
Giả sử chúng ta có lớp sau với một thuộc tính tĩnh:
class User {
public name: string;
public static salary: number = 1000;
constructor(name: string) {
this.name = name;
}
}
Bây giờ hãy tạo một phương thức hiển thị mức lương chung:
class User {
public name: string;
public static salary: number = 1000;
constructor(name: string) {
this.name = name;
}
getSalary(): number {
return User.salary; // truy cập thông qua tên lớp
}
}
Bây giờ hãy tạo một phương thức thay đổi mức lương chung:
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;
}
}
Các thuộc tính tĩnh sẽ được chia sẻ chung cho các đối tượng khác nhau. Điều này có nghĩa là khi thay đổi thuộc tính trong một đối tượng, nó sẽ thay đổi trong đối tượng khác. Hãy kiểm tra điều này.
Tạo hai đối tượng từ lớp của chúng ta:
let user1: User = new User('john');
let user2: User = new User('eric');
Hãy thay đổi mức lương cho người dùng đầu tiên:
user1.setSalary(2000);
Kiểm tra xem mức lương có thay đổi cho người dùng thứ hai không:
console.log(user2.getSalary()); // 2000
Kiểm tra xem mức lương cũng đã thay đổi trong thuộc tính của chính lớp chưa:
console.log(User.salary); // 2000
Thêm thuộc tính tĩnh university vào lớp
Student. Hiển thị thuộc tính này
mà không cần khai báo đối tượng.