Χρήση Τύπων Κλάσεων σε Generics στο TypeScript
Ως γενικευμένος τύπος μπορούμε να χρησιμοποιήσουμε
και κλάσεις. Ωστόσο, πρέπει να ορίσουμε τον τύπο της κλάσης
χρησιμοποιώντας τον κατασκευαστή της. Συνεπώς,
αντί για την παράμετρο type:T, πρέπει
να ορίσουμε type: {new(): T;}. Ας
φτιάξουμε μια συνάρτηση που, με τη σειρά της,
θα δημιουργεί έναν νέο χρήστη από την κλάση User:
function getUser <T> (type: { new (): T; }): T {
return new type();
}
class User {
constructor() {
console.log('You create a new user!');
}
}
let user: User = getUser(User);
Αποτέλεσμα του εκτελεσμένου κώδικα:
'You create a new user!'