Μάθετε τα πάντα για τις δυνατότητες που εισάγει αυτή η τελευταία έκδοση του TypeScript.

Η TypeScript, η δημοφιλής γλώσσα προγραμματισμού της Microsoft, συνεχίζει να εντυπωσιάζει με την τελευταία της έκδοση, TypeScript 5.1. Γεμάτη με συναρπαστικές νέες δυνατότητες και βελτιώσεις, αυτή η έκδοση υπόσχεται να αναβαθμίσει την εμπειρία κωδικοποίησης ύψη.

Απλοποιημένες επιστροφές συναρτήσεων και τύποι αξεσουάρ

Σε JavaScript, όταν δημιουργείτε μια συνάρτηση και να το εκτελέσετε χωρίς να συναντήσετε μια δήλωση επιστροφής, επιστρέφει αυτόματα την τιμή απροσδιόριστος.

Το TypeScript 5.1 εισήγαγε μια νέα δυνατότητα που επιτρέπει στις συναρτήσεις που επιστρέφουν απροσδιόριστες να παραλείψουν εντελώς τη δήλωση επιστροφής. Αυτή η βελτίωση βελτιώνει την αναγνωσιμότητα και τη συνοπτικότητα του κώδικα.

λειτουργίαlogMessage(μήνυμα: σειρά): απροσδιόριστος{
κονσόλα.log (μήνυμα);
// Δεν απαιτείται δήλωση επιστροφής εδώ
}

Αυτό το παράδειγμα χρησιμοποιεί τη συνάρτηση logMessage για να εμφανίσετε ένα μήνυμα στην κονσόλα. Ωστόσο, η συνάρτηση δεν επιστρέφει ρητά καμία τιμή.

Το TypeScript 5.1 εισάγει μια νέα δυνατότητα που επιτρέπει τη χρήση άσχετων τύπων για λήπτες και ρυθμιστές, εφόσον παρέχετε ρητούς σχολιασμούς τύπου.

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

τάξη Χρήστης {
ιδιωτικός _όνομα: σειρά | μηδενικό = μηδενικό;

σειρά όνομα (νέοΌνομα: σειρά) {
Αυτό._name = newName;
}

παίρνω όνομα(): σειρά {
ΕΠΙΣΤΡΟΦΗΑυτό._όνομα?? 'Αγνωστος';
}
}

Σε αυτό το παράδειγμα, η κλάση Χρήστης έχει ένα ιδιωτικό _όνομα ιδιοκτησία που μπορεί να είναι είτε α σειρά ή μηδενικό. ο όνομα ο ρυθμιστής παίρνει μια χορδή νέο όνομα και το αναθέτει σε _όνομα. Το name getter επιστρέφει την τιμή του _όνομα αν δεν είναι μηδενικό, ή Αγνωστος εάν είναι.

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

Αυτή η δυνατότητα επιτρέπει πιο ευέλικτους και εκφραστικούς ορισμούς τύπων όπως φαίνεται στο παρακάτω παράδειγμα.

διεπαφή CSSStyleRule {
// Διαβάζεται πάντα ως 'CSSStyleDeclaration'
παίρνω style(): CSSStyleDeclaration;

// Μπορεί να γράψει μόνο μια «string» εδώ.
σειρά στυλ (newValue: σειρά);
}

Στο παραπάνω παράδειγμα, η ιδιότητα στυλ έχει έναν getter που επιστρέφει μια CSSStyleDeclaration και έναν ρυθμιστή που δέχεται μια συμβολοσειρά. Αυτοί οι τύποι δεν σχετίζονται, αλλά το TypeScript 5.1 επιτρέπει αυτού του είδους τον ορισμό τύπου.

Βελτιώσεις JSX

Το TypeScript 5.1 εισάγει αρκετές βελτιώσεις για το JSX. Τώρα επιτρέπει τον αποσυνδεδεμένο έλεγχο τύπου μεταξύ στοιχείων JSX και τύπων ετικετών JSX, που μπορεί να χρήσιμο για βιβλιοθήκες όπως το redux που επιτρέπουν στα στοιχεία να επιστρέφουν περισσότερα από απλά στοιχεία JSX.

εισαγωγή * όπως και Αντιδρώ από"αντιδρώ";

ασυγχρονισμόςλειτουργίαAsyncComponent() {
ΕΠΙΣΤΡΟΦΗ

Φορτωμένο</div>;
}

// Αυτό πλέον επιτρέπεται:
αφήνω στοιχείο = ;

Σε αυτό το παράδειγμα, το AsyncComponent Η συνάρτηση είναι μια ασύγχρονη συνάρτηση που επιστρέφει ένα στοιχείο JSX. Το TypeScript 5.1 σάς επιτρέπει να χρησιμοποιείτε αυτού του είδους τη λειτουργία ως στοιχείο JSX, κάτι που δεν ήταν δυνατό σε προηγούμενες εκδόσεις.

Το TypeScript 5.1 εισάγει επίσης υποστήριξη για το νέο JSX Transform που παρουσιάστηκε στο React 17. Αυτό σας επιτρέπει να χρησιμοποιείτε το JSX χωρίς να εισάγετε το React.

// Πριν
εισαγωγή Αντιδρώ από"αντιδρώ";

λειτουργίαΣυστατικό() {
ΕΠΙΣΤΡΟΦΗ

Γεια σου κόσμο!</h1>;
}

// Μετά
λειτουργίαΣυστατικό() {
ΕΠΙΣΤΡΟΦΗ

Γεια σου κόσμο!</h1>;
}

Στο παραπάνω παράδειγμα, η συνάρτηση Component επιστρέφει ένα στοιχείο JSX. Στο TypeScript 5.1 και στο React 17, δεν χρειάζεται πλέον να εισάγετε το React για να χρησιμοποιήσετε το JSX.

Αύξηση απόδοσης και σημαντικές αλλαγές στο TypeScript 5.1

Το TypeScript 5.1 εισάγει πολλές βελτιστοποιήσεις για τη βελτίωση της απόδοσης, συμπεριλαμβανομένων βελτιστοποιήσεων ταχύτητας, μνήμης και μεγέθους πακέτου, αποφυγή άσκοπης δημιουργίας τύπων, ελέγχους αρνητικών περιπτώσεων για γράμματα ένωσης και μειωμένες κλήσεις στο σαρωτή για JSDoc τεχνολογία.

Ακολουθεί ένα παράδειγμα αποφυγής άσκοπης δημιουργίας τύπων εντός τύπων αντικειμένων που είναι γνωστό ότι δεν περιέχουν αναφορές σε παραμέτρους εξωτερικού τύπου και ταχύτερους ελέγχους για γράμματα ένωσης.

τύπος Ένωση = 'ένα' | 'σι' | 'ντο';

λειτουργίαέλεγχος(αξία: Ένωση) {
// ...
}

Σε αυτό το παράδειγμα, το TypeScript 5.1 μπορεί να ελέγξει γρήγορα εάν μια τιμή είναι μέρος του τύπου Union χωρίς να χρειάζεται να ελέγχει κάθε τύπο στην ένωση.

Εδώ είναι ένα άλλο παράδειγμα:

τύπος Σημείο = { x: αριθμός, y: αριθμός };

λειτουργίαμεταφράζω(σημείο: Σημείο, dx: αριθμός, dy: αριθμός): Σημείο{
ΕΠΙΣΤΡΟΦΗ { x: point.x + dx, y: point.y + dy };
}

αφήνω p: Σημείο = { x: 1, y: 2 };
p = μετάφραση (p, 1, 1);

Σε αυτό το παράδειγμα, ο τύπος σημείου είναι ένας τύπος αντικειμένου που δεν περιέχει παραμέτρους τύπου. Όταν καλεί τη συνάρτηση μετάφρασης, το TypeScript 5.1 μπορεί να αποφύγει την περιττή παρουσίαση τύπων, η οποία μπορεί να επιταχύνει σημαντικά τον έλεγχο τύπου.

Αγκαλιάζοντας το TypeScript 5.1

Το TypeScript 5.1 εισάγει μια σειρά από ισχυρές δυνατότητες και βελτιστοποιήσεις που φέρνουν επανάσταση στην ανάπτυξη JavaScript. Από τις απλοποιημένες επιστροφές λειτουργιών έως τις βελτιώσεις JSX και τις βελτιώσεις απόδοσης, το TypeScript 5.1 σάς δίνει τη δυνατότητα να γράφετε πιο καθαρό, πιο εκφραστικό κώδικα βελτιώνοντας παράλληλα τον έλεγχο τύπου και τη συνολική απόδοση.

Αγκαλιάζοντας το TypeScript 5.1, μπορείτε να ξεκλειδώσετε νέες δυνατότητες και να ανυψώσετε τα έργα σας JavaScript σε νέα ύψη αποτελεσματικότητας και καινοτομίας. Αφήστε το TypeScript 5.1 να είναι η πύλη σας για μια πιο προηγμένη και βελτιωμένη εμπειρία ανάπτυξης JavaScript.