더북(TheBook)
class PrivateMember {
  private priv: string = 'priv';
}
class ChildPrivateMember extends PrivateMember {
  private priv: string = 'priv';
}
// Class 'ChildPrivateMember' incorrectly extends base class 'PrivateMember'. Types have separate declarations of a private property 'priv'.
class PrivateField {
  #priv: string = 'priv';
  sayPriv() {
    console.log(this.#priv);
  }
}
class ChildPrivateField extends PrivateField {
  #priv: string = 'priv';
}

가장 큰 차이점은 private 수식어로 선언한 속성은 자손 클래스에서 같은 이름으로 선언할 수 없다는 점입니다. 자손 클래스에서 private priv로 선언한 것은 에러가 발생하나 #priv로 선언한 것은 에러가 발생하지 않습니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.