함수형으로 주로 작성하다 보니, 클래스에 대한 이해가 가물가물 하여 다시 새겨보자.
필드(프로퍼티) 혹은 메소드 앞에 private, public, protected를 추가할 수 있다.
private은 해당 클래스 내에서만 접근 가능하고 public은 어디서나
protected는 private 보다는 넓고 public 보다는 좁게 범위를 잡는다.
즉, Class에서 선언한 protected 프로퍼티가 있으면 그걸 상속받은 곳 에서도 접근이 가능하다.
=> 외부에서는 접근이 불가능 하다.
JS에서는 private으로 설정하고 싶다면 이름 앞에 #
을 붙여서 사용한다.
protected의 경우 _
을 붙여 사용한다.
읽기전용으로 만들고 싶다면 readonly를 앞에 붙여주면 된다.
readOnly의 경우 JS에서는 getter만 생성하고 setter를 생성하지 않으면 된다.
getter,setter example
class Test{
priavte lastName: string;
...
get yourLastName() {
return this.lastName;
}
set writeLastName(name: string) {
...
}
}
const person = new Test('Jun');
person.yourLastName; // () 사용 X, 메서드 방식으로 실행하는게 아니다.