Utilizzo dei tipi di classe nei generici in TypeScript

È possibile utilizzare anche le classi come tipo generico. Bisogna solo definire il tipo della classe utilizzando il suo costruttore. Pertanto, invece del parametro type:T, dobbiamo specificare type: {new(): T;}. Creiamo una funzione che a sua volta creerà un nuovo utente dalla classe User:

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

class User {
  constructor() {
    console.log('Hai creato un nuovo utente!');
  }
}

let user: User = getUser(User);

Risultato del codice eseguito:

typescript'Hai creato un nuovo utente!'