Visibility Keyword
- 자바스크립트엔 없고 타입스크립트에만 존재하는 개념이다.
public: (기본값) 어디서든 접근 가능
protected: 현재 클래스 및 하위 클래스에서 접근 가능
private: 현재 클래스 내에서 접근 가능
class Class {
public property1 = 1;
protected property2 = 2;
private property3 = 3;
#property4 = 4; // 자바스크립트에서 지원하는 private property
// 클래스 내부 메서드 접근 테스트
method() {
this.property1; // 접근 가능
this.property2; // 접근 가능
this.property3; // 접근 가능
this.#property4; // 접근 가능
}
}
class ChildClass extends Class {
// 하위 클래스 내부 메서드 접근 테스트
method() {
this.property1; // 접근 가능
this.property2; // 접근 가능
this.property3; // 접근 불가
this.#property4; // 접근 불가
}
}
const childInstance = new ChildClass();
childInstance.property1; //접근 가능
childInstance.property2; //접근 불가
childInstance.property3; //접근 불가
childInstance.#property4; //접근 불가