Verwendung von Klassentypen in Generika in TypeScript

Als generischen Typ kann man auch Klassen verwenden. Man muss nur den Typ der Klasse über ihren Konstruktor angeben. Daher müssen wir anstelle des Parameters type:T type: {new(): T;} angeben. Lasst uns eine Funktion erstellen, die wiederum einen neuen Benutzer aus der Klasse User erstellt:

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);

Ergebnis des ausgeführten Codes:

typescript'You create a new user!'