⊗tsSpGnCls 34 of 37 menu

Γενικευμένες Κλάσεις στο TypeScript

Εκτός από γενικευμένα interfaces στο TypeScript μπορούμε να φτιάξουμε και γενικευμένες κλάσεις.

Ας δημιουργήσουμε μια κλάση User γενικευμένου τύπου. Ας γράψουμε επίσης την ιδιότητα value γενικευμένου τύπου και ας φτιάξουμε τον αντίστοιχο κατασκευαστή (constructor):

class User <T> { value: T; constructor(userData: T) { this.value = userData; } }

Τώρα ας φτιάξουμε ένα αντικείμενο αυτής της κλάσης και ας του ορίσουμε ως ιδιότητα μια τιμή string:

let user = new User('john'); console.log(user.value); // 'john'

Ωστόσο, εάν έχουμε ήδη ορίσει στο αντικείμενο κατά την κλήση του μια τιμή string, δεν θα μπορέσουμε να ξαναγράψουμε αυτή την τιμή σε διαφορετικό τύπο:

let user = new User('john'); user.value = 35;

Σε μια προσπάθεια εκτέλεσης του κώδικα θα δούμε το ακόλουθο σφάλμα:

Type 'number' is not assignable to type 'string'.

Αλλά ταυτόχρονα μπορούμε να ξαναγράψουμε την τιμή string:

let user = new User('john'); user.value = 'alex'; console.log(user.value); // 'alex'

Σημειώστε ότι δεν μπορούμε να ξαναγράψουμε μια ιδιότητα του ίδιου αντικειμένου σε διαφορετικό τύπο, αλλά μπορούμε απλά να δημιουργήσουμε ένα διαφορετικό αντικείμενο:

let newUser = new User(35); console.log(newUser.value); // 35
Ελληνικά
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Χρησιμοποιούμε cookie για τη λειτουργία του ιστότοπου, την ανάλυση και την εξατομίκευση. Η επεξεργασία των δεδομένων γίνεται σύμφωνα με την Πολιτική Απορρήτου.
αποδοχή όλων ρύθμιση απόρριψη