애초에 인터페이스의 속성은 protected나 private이 될 수 없습니다. 따라서 implements한 클래스에서도 인터페이스의 속성들은 전부 public이어야만 합니다. 속성이 protected이거나 private인 경우에는 에러가 발생합니다.
클래스 메서드에는 override 수식어가 있는데, 이 override 수식어를 활용하려면 TS Config 메뉴에서 noImplicitOverride 옵션이 체크되어 있어야 합니다.
체크하면 다음 코드에서 에러가 발생합니다.
class Human {
eat() {
console.log('냠냠');
}
sleap() {
console.log('쿨쿨');
}
}
class Employee extends Human {
work() {
console.log('끙차');
}
sleap() {
console.log('에고고');
}
}
// This member must have an 'override' modifier because it overrides a member in the base class 'Human'.