Používanie typov tried v generikách v TypeScript

Ako generický typ je možné použiť aj triedy. Len je potrebné zadať typ triedy pomocou jej konštruktora. Preto namiesto parametra type:T musíme zadať type: {new(): T;}. Urobme funkciu, ktorá naopak vytvorí nového používateľa z triedy User:

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

class User {
  constructor() {
    console.log('You create a new user!');
  }
}

let user: User = getUser(User);

Výsledok vykonaného kódu:

typescript'You create a new user!'