더북(TheBook)

생성자 내부에 할당 없이 멤버로만 선언하면 생성자 안에서 할당되지 않았다는 에러가 발생하고, 멤버를 선언하지 않고 생성자에서만 만들면 해당 속성이 클래스 안에 없다고 에러가 발생합니다.

조금 더 엄격하게, 클래스의 멤버가 제대로 들어 있는지 검사할 수 있습니다. 인터페이스와 함께 implements 예약어를 사용하면 됩니다.

interface Human {
  name: string;
  age: number;
  married: boolean;
  sayName(): void;
}
class Person implements Human {
  name;
  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 'sayName' is missing in type 'Person' but required in type 'Human'.
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.