Uso de tipos de classe em genéricos no TypeScript
Você também pode usar
classes como um tipo genérico.
No entanto, é necessário definir o tipo da classe
usando seu construtor. Portanto,
em vez do parâmetro type:T, precisamos
especificar type: {new(): T;}. Vamos
criar uma função que, por sua vez,
criará um novo usuário a partir da classe 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 da execução do código:
'You create a new user!'