TypeScript에서 제네릭에 클래스 타입 사용하기
제네릭 타입으로 클래스도 사용할 수 있습니다.
단지 생성자를 사용하여 클래스의 타입을 지정해야 합니다.
따라서 매개변수 type:T 대신에
type: {new(): T;}를 지정해야 합니다.
User 클래스에서 새 사용자를 생성하는 함수를 만들어 보겠습니다:
function getUser <T> (type: { new (): T; }): T {
return new type();
}
class User {
constructor() {
console.log('새 사용자가 생성되었습니다!');
}
}
let user: User = getUser(User);
실행된 코드의 결과:
'새 사용자가 생성되었습니다!'