먼저 인터페이스를 하나 선언하고, 클래스가 그 인터페이스를 implements합니다. Person 클래스는 Human 인터페이스를 implements했으나 Human 인터페이스의 sayName 메서드를 구현하지 않았으므로 에러가 발생합니다.
타입스크립트는 생성자 함수 방식으로 객체를 만드는 것을 지원하지 않습니다.
interface PersonInterface {
name: string;
age: number;
married: boolean;
}
function Person(this: PersonInterface, name: string, age: number, married: boolean) {
this.name = name;
this.age = age;
this.married = married;
}
new Person('zero', 28, false);
// 'new' expression, whose target lacks a construct signature, implicitly has an 'any' type.
따라서 클래스가 new를 붙여 호출할 수 있는 유일한 객체라고 볼 수 있습니다.