더북(TheBook)

생성자의 타입은 메서드 앞에 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);
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.