더북(TheBook)

개인적으로는 private field(#)를 선호합니다. 자바스크립트의 원래 기능과 좀 더 가깝기 때문입니다. public 수식어는 생략해도 되므로 사용하지 않고, private 수식어는 private field로 대체합니다. 따라서 protected 수식어만 명시적으로 사용합니다.

implements하는 인터페이스의 속성은 전부 public이어야 합니다.

interface Human {
  name: string;
  age: number;
  married: boolean;
}
class Person implements Human {
  name;
  protected age;
  married;
  constructor(name: string, age: number, married: boolean) {
    this.name = name;
    this.age = age;
    this.married = married;
  }
}
// Class 'Person' incorrectly implements interface 'Human'. Property 'age' is protected in type 'Person' but not in type 'Human'.
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.