[typescript] protected 접근 제어자와 객체 생성

이번 포스팅에서는 TypeScript에서 protected 접근 제어자를 다루고, 해당 클래스의 객체를 어떻게 생성하는지 알아보겠습니다.

protected 접근 제어자

protected 접근 제어자는 해당 클래스 또는 파생 클래스에서만 접근할 수 있는 멤버를 지정합니다. 즉, 해당 클래스를 상속받은 하위 클래스에서는 접근이 가능하지만, 외부에서는 접근할 수 없습니다.

예를 들어, 아래 예제에서 Person 클래스의 name 속성은 protected로 지정되어 있으므로, Employee 클래스에서 접근할 수 있지만, 외부에서는 접근할 수 없습니다.

class Person {
  protected name: string;

  constructor(name: string) {
    this.name = name;
  }
}

class Employee extends Person {
  private department: string;

  constructor(name: string, department: string) {
    super(name);
    this.department = department;
  }

  public getDetails() {
    return `${this.name} works in ${this.department} department`;
  }
}

const emp = new Employee('John', 'IT');
console.log(emp.getDetails()); // 출력: John works in IT department
console.log(emp.name); // 오류: 'name'은 'Person' 클래스 내에서만 접근할 수 있습니다

객체 생성

위 예제에서 protected로 선언된 name 속성은 Employee 클래스 내부에서는 접근이 가능합니다. 그러므로 Employee 클래스의 객체를 생성하고 해당 객체의 메소드를 호출하여 protected 속성에 접근하는 방법을 사용할 수 있습니다.

위의 예제에서 Employee 클래스의 getDetails 메소드를 호출하여 protected로 지정된 name 속성에 접근하는 방법을 확인할 수 있습니다.

이러한 방식으로, protected 접근 제어자를 사용하여 클래스의 내부 구현을 보호하면서도 상속을 통해 하위 클래스에서 접근할 수 있도록 할 수 있습니다.

이상으로 TypeScript에서 protected 접근 제어자와 객체 생성에 대해 알아보았습니다!

더 많은 정보는 TypeScript 공식 문서를 참조하세요.