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로 선언한 것은 에러가 발생하지 않습니다.