Klasių tipų naudojimas generikuose TypeScript

Kaip generic tipą galima naudoti ir klases. Tik reikia nustatyti klasės tipą naudojant jos konstruktorių. Todėl vietoj parametro type:T mes turime nurodyti type: {new(): T;}. Sukurkime funkciją, kuri savo ruožtu sukurs naują vartotoją iš klasės User:

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

class User {
  constructor() {
    console.log('Sukūrėte naują vartotoją!');
  }
}

let user: User = getUser(User);

Vykdymo rezultatas:

typescript'Sukūrėte naują vartotoją!'