생성자 내부에 할당 없이 멤버로만 선언하면 생성자 안에서 할당되지 않았다는 에러가 발생하고, 멤버를 선언하지 않고 생성자에서만 만들면 해당 속성이 클래스 안에 없다고 에러가 발생합니다.
조금 더 엄격하게, 클래스의 멤버가 제대로 들어 있는지 검사할 수 있습니다. 인터페이스와 함께 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'.