TypeScript의 정적 속성
객체 내부에서 정적 속성에 접근하는 방법을 살펴봅시다.
정적 속성을 가진 다음과 같은 클래스가 있다고 가정해 봅시다:
class User {
public name: string;
public static salary: number = 1000;
constructor(name: string) {
this.name = name;
}
}
이제 총 급여를 출력하는 메서드를 만들어 봅시다:
class User {
public name: string;
public static salary: number = 1000;
constructor(name: string) {
this.name = name;
}
getSalary(): number {
return User.salary; // 클래스 이름으로 접근
}
}
이제 총 급여를 변경하는 메서드를 만들어 봅시다:
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;
}
}
정적 속성은 다른 객체들 사이에서 공통됩니다. 이것은 한 객체에서 속성을 변경하면 다른 객체에서도 변경된다는 것을 의미합니다. 이를 확인해 봅시다.
우리 클래스의 두 객체를 생성해 봅시다:
let user1: User = new User('john');
let user2: User = new User('eric');
첫 번째 사용자의 급여를 변경해 봅시다:
user1.setSalary(2000);
두 번째 사용자의 급여도 변경되었는지 확인해 봅시다:
console.log(user2.getSalary()); // 2000
급여가 클래스 자체의 속성에서도 변경되었는지 확인해 봅시다:
console.log(User.salary); // 2000
Student 클래스에 정적 속성 university를 추가하세요. 객체를 선언하지 않고 이 속성을 출력하세요.