Выкарыстанне тыпаў класаў у джэнеріках у TypeScript

У якасці абагульненага тыпу можна выкарыстоўваць і класы. Toлькі трэба задаць тып класа з дапамогай яго канструктара. Такім чынам замест параметра 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!'