더북(TheBook)
interface PersonConstructor {
  new (name: string, age: number): {
    name: string;
    age: number;
  };
}

class Person {
  name: string;
  age: number;
  constructor(name: string, age: number) {
    this.name = name;
    this.age = age;
  }
}

function createPerson(ctor: PersonConstructor, name: string, age: number) {
  return new ctor(name, age);
}

createPerson(Person, 'zero', 28);
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.