더북(TheBook)

해당 인터페이스는 new를 붙여 호출할 수 있습니다.

이를 활용해 타입스크립트에서도 생성자 함수를 사용할 수 있습니다.

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;
}
type PersonType = typeof Person & { 
  new (name: string, age: number, married: boolean): PersonInterface
}
new (Person as PersonType)('zero', 28, false);

다만 클래스가 있는데 굳이 이러한 방식으로 코딩할 이유는 없지요.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.