Wykorzystanie typów klas w generykach w TypeScript

Jako typ generyczny można używać również klas. Trzeba tylko określić typ klasy za pomocą jej konstruktora. Zatem zamiast parametru type:T musimy podać type: {new(): T;}. Stwórzmy funkcję, która z kolei utworzy nowego użytkownika z klasy 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);

Wynik wykonanego kodu:

typescript'You create a new user!'