TypeScript의 정적 속성

객체 내부에서 정적 속성에 접근하는 방법을 살펴봅시다.

정적 속성을 가진 다음과 같은 클래스가 있다고 가정해 봅시다:

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

이제 총 급여를 출력하는 메서드를 만들어 봅시다:

typescriptclass User {
  public name: string;
  public static salary: number = 1000;
  
  constructor(name: string) {
    this.name = name;
  }
  
  getSalary(): number {
    return User.salary; // 클래스 이름으로 접근
  }
}

이제 총 급여를 변경하는 메서드를 만들어 봅시다:

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

정적 속성은 다른 객체들 사이에서 공통됩니다. 이것은 한 객체에서 속성을 변경하면 다른 객체에서도 변경된다는 것을 의미합니다. 이를 확인해 봅시다.

우리 클래스의 두 객체를 생성해 봅시다:

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

첫 번째 사용자의 급여를 변경해 봅시다:

typescriptuser1.setSalary(2000);

두 번째 사용자의 급여도 변경되었는지 확인해 봅시다:

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

급여가 클래스 자체의 속성에서도 변경되었는지 확인해 봅시다:

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

Student 클래스에 정적 속성 university를 추가하세요. 객체를 선언하지 않고 이 속성을 출력하세요.