TypeScript에서 제네릭에 클래스 타입 사용하기

제네릭 타입으로 클래스도 사용할 수 있습니다. 단지 생성자를 사용하여 클래스의 타입을 지정해야 합니다. 따라서 매개변수 type:T 대신에 type: {new(): T;}를 지정해야 합니다. User 클래스에서 새 사용자를 생성하는 함수를 만들어 보겠습니다:

typescriptfunction getUser <T> (type: { new (): T; }): T {
  return new type();
}

class User {
  constructor() {
    console.log('새 사용자가 생성되었습니다!');
  }
}

let user: User = getUser(User);

실행된 코드의 결과:

typescript'새 사용자가 생성되었습니다!'