[typescript] 클래스 외부에서 protected 접근 제어자 사용하기

클래스의 멤버 변수나 메서드를 일부 외부에서 접근할 수 있도록 하고 싶을 때, protected 접근 제어자를 사용할 수 있습니다. 이는 해당 클래스를 상속한 하위 클래스에서는 해당 멤버에 접근할 수 있지만, 일반적으로 클래스 외부에서는 접근할 수 없습니다.

다음은 간단한 TypeScript 클래스의 예제입니다.

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 `Name: ${this.name}, Department: ${this.department}`;
    }
}

let employee = new Employee("John Doe", "Engineering");
console.log(employee.name); // 에러: 'name'은 Employee 외부에서 접근할 수 없습니다.

위 예제에서 name 멤버 변수는 Person 클래스에서 protected로 선언되었습니다. 따라서 Employee 클래스에서는 name에 접근할 수 있지만, 클래스 외부에서는 접근할 수 없습니다.

이를 통해, protected 접근 제어자를 사용하여 클래스 멤버의 일부 외부 접근을 제어할 수 있음을 확인할 수 있습니다.

더 자세한 내용은 TypeScript 공식 문서를 참고해 주세요.