생성자의 타입은 메서드 앞에 new를 붙이면 됩니다. 그러면 new Person과 같이 호출할 수 있습니다. 단, function을 생성자 함수로 만들려면 생성자의 타입(PersonConstructor)과 인스턴스의 타입(Person)을 따로 만들고 생성자 함수도 as unknown as PersonConstructor로 강제로 타입을 지정해야 합니다. 이는 부자연스러운 방법이므로 생성자 함수 대신 클래스를 사용하는 방법을 더 권장합니다. 2.20절에서 다시 배울 텐데, 클래스를 사용한 코드만 미리 보면 다음과 같습니다.
class Person {
name: string;
age: number;
married: boolean;
constructor(name: string, age: number, married: boolean) {
this.name = name;
this.age = age;
this.married = married;
}
sayName() {
console.log(this.name);
}
}
const zero = new Person('zero', 28, false);