Osztálytípusok használata generikusokban TypeScript-ben

Általánosított típusként használhatunk osztályokat is. Csak az osztály típusát kell megadni a konstruktorával. Ezért a type:T paraméter helyett type: {new(): T;}-t kell megadnunk. Készítsünk egy függvényt, amely létrehoz egy új felhasználót a User osztályból:

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);

A kód végrehajtásának eredménye:

typescript'You create a new user!'