⊗tsSpGnIms 35 of 37 menu

Περιορισμοί γενικευμένων τύπων στο TypeScript

Σε ένα από τα προηγούμενα μαθήματα, δημιουργήσαμε μια συνάρτηση γενικευμένου τύπου που έπρεπε να επιστρέφει το μήκος της παραμέτρου που της μεταβιβάστηκε. Ωστόσο, κατά τη μεταγλώττιση εμφανίστηκε σφάλμα, καθώς δεν έχουν όλοι οι τύποι μήκος:

function myFunc < T > (data: T): T { console.log(data.length); // σφάλμα return data; }

Σε εκείνη την περίπτωση διορθώσαμε την κατάσταση, αλλάζοντας τον γενικευμένο τύπο σε τύπο γενικευμένου πίνακα. Αλλά στο TypeScript υπάρχει δυνατότητα δημιουργίας περιορισμών για τους γενικευμένους τύπους. Για να το κάνουμε αυτό, στις γωνιακές αγκύλες, μετά τη μεταβλητή T γράφουμε τη λέξη-κλειδί extends. Μετά από αυτή σε άγκιστρα γράφουμε μια νέα μεταβλητή str τύπου string. Ο υπόλοιπος κώδικας της συνάρτησης παραμένει χωρίς αλλαγές:

function myFunc <T extends {str: string}> (data: T): void { console.log(data.str.length); }

Αποδεικνύεται ότι ο γενικευμένος τύπος κληρονομεί τον τύπο της μεταβλητής str, που ορίστηκε στα άγκιστρα. Τώρα ας ελέγξουμε τη λειτουργία της συνάρτησής μας και ας δημιουργήσουμε μια μεταβλητή myStr, που αναφέρεται στον τύπο str, και ας ορίσουμε την τιμή της σε άγκιστρα:

let myStr: {str: string} = {str: 'abcde'};

Ας καλέσουμε τη συνάρτηση myFunc, χωρίς να ξεχνάμε να ορίσουμε ξανά τον τύπο της και να μεταβιβάσουμε τη μεταβλητή myStr ως παράμετρο:

myFunc <{str: string}> (myStr);

Βασισμένοι στο παράδειγμα που εξετάστηκε στο μάθημα, ορίστε μια συνάρτηση για την εύρεση του μήκους ενός αριθμητικού πίνακα.

Ελληνικά
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 για τη λειτουργία του ιστότοπου, την ανάλυση και την εξατομίκευση. Η επεξεργασία των δεδομένων γίνεται σύμφωνα με την Πολιτική Απορρήτου.
αποδοχή όλων ρύθμιση απόρριψη