다음과 같은 클래스가 있습니다.
class Person {
constructor(name: string) {}
}
위 클래스의 생성자를 눈 여겨 보기 바랍니다. 클래스의 생성자는 new 연산자와 함께 클래스를 함수처럼 호출하면 실행되는 함수입니다. 이렇게 생성되는 생성자의 일반적인 시그니쳐는 다음과 같습니다.
new (...args) => ReturnType
앞서 봤던 Person 클래스에 대한 생성자 시그니쳐는 다음과 같습니다.
new (name: string) => Person
사실 Person 클래스의 생성자 시그니처는 간단히 다음처럼 얻을 수 있습니다.
type T = typeof Person;
즉, T는 다음과 같게 됩니다.
type T = new(name: string) => Person;
