Použití typů tříd v generikách v TypeScriptu

Jako generický typ lze použít i třídy. Jen je potřeba zadat typ třídy pomocí jejího konstruktoru. Proto místo parametru type:T musíme uvedst type: {new(): T;}. Udělejme funkci, která vytvoří nového uživatele z třídy User:

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

class User {
  constructor() {
    console.log('Vytvořil jste nového uživatele!');
  }
}

let user: User = getUser(User);

Výsledek provedeného kodu:

typescript'Vytvořil jste nového uživatele!'