Χρήση Τύπων Κλάσεων σε Generics στο 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!'