Использование типов классов в дженериках в TypeScript
В качестве обобщенного типа можно использовать
и классы. Toлько нужно задать тип класса
с помощью его конструктора. Следовательно
вместо параметра type:T нам надо
указать type: {new(): T;}. Давайте
сделаем функцию, которая в свою очередь
создаст нового пользователя из класса User:
function getUser <T> (type: { new (): T; }): T {
return new type();
}
class User {
constructor() {
console.log('You create a new user!');
}
}
let user: User = getUser(User);
Результат выполненного кода:
'You create a new user!'