Използване на типове класове в дженерици в TypeScript

Като обобщен тип може да се използва и класове. Само трябва да зададете типа на класа чрез неговия конструктор. Следователно вместо параметър type:T трябва да посочим type: {new(): T;}. Нека направим функция, която от своя страна ще създаде нов потребител от класа 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);

Резултат от изпълнения код:

typescript'You create a new user!'