Uso de tipos de clases en genéricos en TypeScript
Como tipo genérico se pueden utilizar
también las clases. Solo hay que definir el tipo de clase
usando su constructor. Por lo tanto,
en lugar del parámetro type:T necesitamos
especificar type: {new(): T;}. Hagamos
una función que, a su vez,
creará un nuevo usuario a partir de la clase 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);
Resultado del código ejecutado:
'You create a new user!'