Προγραμματισμός

Τι είναι το TypeScript; Δυνατότητα πληκτρολόγησης JavaScript

Τι είναι το TypeScript; Ορίστηκε TypeScript

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

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

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

Πληκτρολόγιο έναντι JavaScript 

Το TypeScript είναι ένα υπερσύνολο της JavaScript. Ενώ οποιοσδήποτε σωστός κώδικας JavaScript είναι επίσης σωστός κωδικός TypeScript, το TypeScript έχει επίσης λειτουργίες γλώσσας που δεν αποτελούν μέρος της JavaScript. Το πιο χαρακτηριστικό χαρακτηριστικό μοναδικό για το TypeScript - αυτό που έδωσε στο TypeScript το όνομά του - είναι, όπως σημειώνεται, ισχυρή πληκτρολόγηση: μια μεταβλητή TypeScript σχετίζεται με ένα τύπος, όπως μια συμβολοσειρά, έναν αριθμό ή ένα δυαδικό, που λέει στον μεταγλωττιστή τι είδους δεδομένα μπορεί να κρατήσει. Επιπλέον, το TypeScript υποστηρίζει συμπεράσματα τύπου και περιλαμβάνει catch-all οποιονδήποτε τύπο, πράγμα που σημαίνει ότι οι μεταβλητές δεν χρειάζεται να έχουν τους τύπους τους εκχωρημένους ρητά από τον προγραμματιστή. περισσότερα σε αυτό σε μια στιγμή.

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

Ωστόσο, δεν υπάρχει λειτουργικότητα που μπορείτε να κωδικοποιήσετε στο TypeScript που δεν μπορείτε επίσης να κωδικοποιήσετε σε JavaScript. Αυτό συμβαίνει επειδή το TypeScript δεν συντάσσεται με συμβατική έννοια - ο τρόπος, για παράδειγμα, το C ++ μεταγλωττίζεται σε δυαδικό εκτελέσιμο που μπορεί να εκτελεστεί σε καθορισμένο υλικό. Αντ 'αυτού, ο μεταγλωττιστής TypeScript κωδικοποιητές Πληκτρολογήστε κώδικα σε λειτουργικά ισοδύναμο JavaScript. Αυτό το άρθρο από τον Sean Maxwell στο GitConnected έχει μερικά υπέροχα παραδείγματα αντικειμενοστρεφών αποσπασμάτων κώδικα TypeScript και τα αντίστοιχα JavaScript. Το JavaScript που προκύπτει μπορεί στη συνέχεια να εκτελεστεί οπουδήποτε μπορεί να εκτελείται οποιοσδήποτε κώδικας JavaScript, από πρόγραμμα περιήγησης ιστού έως διακομιστή εξοπλισμένο με Node.js.

Έτσι, αν το TypeScript είναι, τελικά, ένας απλός τρόπος δημιουργίας κώδικα JavaScript, γιατί να τον ενοχλείτε; Για να απαντήσουμε σε αυτήν την ερώτηση, πρέπει να εξετάσουμε από πού προέρχεται το TypeScript και για ποιο λόγο χρησιμοποιείται.

Σε τι χρησιμοποιείται το TypeScript;

Το TypeScript κυκλοφόρησε ως ανοιχτού κώδικα το 2012 αφού αναπτύχθηκε εντός της Microsoft. (Ο γίγαντας του λογισμικού παραμένει ο διαχειριστής και ο κύριος προγραμματιστής του έργου.) Αυτό το άρθρο του ZDNet από την εποχή προσφέρει μια ενδιαφέρουσα ματιά στο γιατί συνέβη αυτό: «Αποδείχθηκε ότι ένα από τα μεγάλα κίνητρα ήταν η εμπειρία άλλων ομάδων της Microsoft που προσπαθούσαν να αναπτύξουν και διατηρήστε τα προϊόντα της Microsoft σε JavaScript. "

Εκείνη την εποχή, η Microsoft προσπαθούσε να αναβαθμίσει τους Χάρτες Bing ως ανταγωνιστής στους Χάρτες Google, καθώς και να προσφέρει εκδόσεις ιστού της σουίτας του Office - και η JavaScript ήταν η κύρια γλώσσα ανάπτυξης για τις εργασίες. Όμως, οι προγραμματιστές, στην ουσία, δυσκολεύτηκαν να γράψουν εφαρμογές στην κλίμακα των κορυφαίων προσφορών της Microsoft χρησιμοποιώντας JavaScript. Έτσι ανέπτυξαν το TypeScript για να διευκολύνουν την κατασκευή εφαρμογών σε εταιρικό επίπεδο για εκτέλεση σε περιβάλλοντα JavaScript. Αυτό είναι το πνεύμα πίσω από το χαρακτηριστικό για τη γλώσσα στον επίσημο ιστότοπο του έργου TypeScript: "JavaScript που κλιμακώνεται".

Γιατί το TypeScript είναι καλύτερο για αυτό το είδος εργασίας από το JavaScript βανίλιας; Λοιπόν, μπορούμε να διαφωνούμε για πάντα σχετικά με τα πλεονεκτήματα του αντικειμενοστρεφούς προγραμματισμού, αλλά η πραγματικότητα είναι ότι πολλοί προγραμματιστές λογισμικού που εργάζονται σε μεγάλα επιχειρηματικά έργα είναι συνηθισμένοι σε αυτό, και βοηθά στην επαναχρησιμοποίηση κώδικα ως έργα μπαλόνι σε μέγεθος. Επίσης, δεν πρέπει να παραβλέπετε το βαθμό στον οποίο τα εργαλεία μπορούν να ενισχύσουν την παραγωγικότητα του προγραμματιστή. Όπως σημειώθηκε, τα περισσότερα εταιρικά IDE υποστηρίζουν τη στοιχειώδη συλλογή, η οποία μπορεί να εντοπίσει σφάλματα καθώς εργάζεστε. (Εφόσον ο κώδικάς σας είναι σωστικός σωστός, θα εξακολουθεί να μεταδίδεται, αλλά η προκύπτουσα JavaScript ενδέχεται να μην λειτουργεί σωστά. Σκεφτείτε τον έλεγχο σφάλματος ως το ισοδύναμο του ορθογραφικού ελέγχου.) Αυτά τα IDE μπορούν επίσης να σας βοηθήσουν να αναδιαμορφώσετε τον κώδικα καθώς μπαίνετε βαθιά στο έργο.

Με λίγα λόγια, το TypeScript χρησιμοποιείται όταν θέλετε τα εταιρικά χαρακτηριστικά και τα εργαλεία μιας γλώσσας όπως η Java, αλλά χρειάζεστε τον κωδικό σας για εκτέλεση σε περιβάλλον JavaScript. Θεωρητικά, θα μπορούσατε να γράψετε το τυπικό JavaScript που δημιουργεί ο μεταγλωττιστής TypeScript, αλλά θα σας πάρει πολύ περισσότερο και η βάση κώδικα θα ήταν πιο δύσκολη για μια μεγάλη ομάδα να κατανοήσει και να εντοπίσει συλλογικά.

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

Εγκατάσταση TypeScript

Είστε έτοιμοι να ξεκινήσετε να παίζετε με TypeScript; Η εγκατάσταση της γλώσσας είναι εύκολη. Εάν χρησιμοποιείτε ήδη το Node.js στον υπολογιστή ανάπτυξης, μπορείτε να χρησιμοποιήσετε το NPM, τον διαχειριστή πακέτων Node.js, για να το εγκαταστήσετε. Το επίσημο σενάριο TypeScript σε 5 λεπτά θα σας καθοδηγήσει στη διαδικασία.

Το TypeScript μπορεί επίσης να εγκατασταθεί ως πρόσθετο στο IDE της επιλογής σας, το οποίο θα σας δώσει τα πλεονεκτήματα εργαλείων που αναφέραμε παραπάνω και επίσης θα φροντίσετε για τη διαδικασία σύνταξης του TypeScript σε JavaScript. Δεδομένου ότι το TypeScript αναπτύχθηκε από τη Microsoft, δεν προκαλεί έκπληξη το γεγονός ότι υπάρχουν διαθέσιμα πρόσθετα υψηλής ποιότητας για το Visual Studio και το Visual Studio Code. Αλλά ως έργο ανοιχτού κώδικα, το TypeScript έχει προσαρμοστεί παντού, κυμαινόμενο από ανοιχτές πηγές IDE όπως το Eclipse έως σεβαστούς συντάκτες κειμένου όπως το Vim. Και ολόκληρο το έργο μπορεί να αναζητηθεί και να ληφθεί από το GitHub.

Σύνταξη TypeScript

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

Τύποι σεναρίων

Προφανώς το πιο σημαντικό συντακτικό χαρακτηριστικό στο TypeScript είναι το σύστημα τύπου. Η γλώσσα υποστηρίζει έναν αριθμό βασικών τύπων:

  • Boolean: Μια απλή αληθινή / ψευδής τιμή.
  • Αριθμός: Στο TypeScript, όπως και στο JavaScript, όλοι οι αριθμοί είναι τιμές κινητής υποδιαστολής - δεν υπάρχει ξεχωριστός ακέραιος. Το TypeScript υποστηρίζει δεκαδικά, δεκαεξαδικά, δυαδικά και οκταδικά γράμματα.
  • String: Μια σειρά δεδομένων κειμένου. Μπορείτε να χρησιμοποιήσετε μεμονωμένα ή διπλά εισαγωγικά για να περιβάλλετε τη συμβολοσειρά σας κατά τη ρύθμιση των δεδομένων. Μπορείτε επίσης να χρησιμοποιήσετε backticks ( ` ) για να περιβάλλετε συμβολοσειρές με πολλές γραμμές και μπορείτε να ενσωματώσετε εκφράσεις σε μια συμβολοσειρά με τη σύνταξη $ {expr}.
  • Πίνακες και πλειάδες: Αυτοί οι τύποι σάς επιτρέπουν να αποθηκεύετε πολλές τιμές σε μια καθορισμένη ακολουθία. Σε έναν πίνακα, οι μεμονωμένες τιμές είναι όλες του ίδιου τύπου δεδομένων, ενώ σε μια πλειάδα μπορούν να είναι ετερογενείς. Το TypeScript για κάθε() χρησιμοποιείται μέθοδος για την κλήση μιας συνάρτησης σε κάθε στοιχείο σε έναν πίνακα.
  • Enum: Όπως και ο τύπος του ίδιου ονόματος στο C #, το TypeScript enum σάς επιτρέπει να αντιστοιχίσετε αναγνωρίσιμα από τον άνθρωπο ονόματα σε μια ακολουθία αριθμητικών τιμών.
  • Οποιοδήποτε: Πρόκειται για έναν τύπο για μια μεταβλητή όπου δεν γνωρίζετε απαραίτητα με ποια τιμή θα καταλήξει εκ των προτέρων - μπορεί να πάρει τις τιμές της από την είσοδο χρήστη ή από μια βιβλιοθήκη τρίτων, για παράδειγμα.
  • Αντικείμενο: Αυτός είναι ο τύπος που αντιπροσωπεύει οτιδήποτε δεν είναι πρωτόγονος τύπος. είναι απαραίτητο για την αντικειμενοστρεφή φύση του TypeScript.

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

let someValue: any;

let strLength: number = (someValue) .length;

Και το δεύτερο είναι όπως και σύνταξη:

let someValue: any = "αυτό είναι μια συμβολοσειρά";

let strLength: number = (someValue as string). μήκος;

Αυτά τα αποσπάσματα κώδικα, τα οποία λαμβάνονται από την τεκμηρίωση TypeScript, είναι λειτουργικά ισοδύναμα. Και οι δύο ορίζουν someValue ως μεταβλητή τύπου όποιος και εκχώρηση "αυτή είναι μια συμβολοσειρά" ως την αξία του και, στη συνέχεια, ορίστε Μήκος ως αριθμός και αντιστοιχίστε ως αξία του το μήκος των περιεχομένων του someValue.

Οι τύποι TypeScript μπορούν επίσης να οριστούν με συμπεράσματα. Δηλαδή, αν ορίσετε μια τιμή από x έως 7 χωρίς να προσδιορίσετε τον τύπο x, ο μεταγλωττιστής θα υποθέσει ότι το x πρέπει να είναι ένας αριθμός. Σε ορισμένες περιπτώσεις ο μεταγλωττιστής μπορεί να συμπεράνει ένα όποιος πληκτρολογήστε, αν και μπορείτε να χρησιμοποιήσετε σημαίες συλλογής για να βεβαιωθείτε ότι δεν το κάνει.

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

Διεπαφή TypeScript

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

Γενικές γραμματοσειρές

Το TypeScript μοιράζεται επίσης την έννοια του γενικά με αντικειμενοστρεφείς γλώσσες όπως Java και C #. (Η ισοδύναμη εγκατάσταση στο C ++ ονομάζεται a πρότυπο.) Στο TypeScript, τα γενικά στοιχεία μπορούν να λειτουργήσουν σε διάφορους τύπους, και όχι μόνο σε έναν, ανάλογα με το πού βρίσκονται στον κώδικα αυτά τα στοιχεία. Εδώ είναι ένα πολύ απλό παράδειγμα από την τεκμηρίωση TypeScript. Πρώτα, σκεφτείτε αυτήν τη συνάρτηση, η οποία λαμβάνει ένα όρισμα και στη συνέχεια την επιστρέφει αμέσως:

ταυτότητα συνάρτησης (arg: any): οποιοδήποτε {

επιστροφή arg;

}

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

ταυτότητα συνάρτησης (arg: T): T {

επιστροφή arg;

}

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

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

Κατηγορία TypeScript 

Σε αντικειμενοστρεφή προγραμματισμό, τάξεις κληρονομούν τη λειτουργικότητα και με τη σειρά τους χρησιμεύουν ως δομικά στοιχεία αντικειμένων. Η JavaScript παραδοσιακά δεν έκανε χρήση τάξεων, αντ 'αυτού βασίστηκε σε λειτουργίες και κληρονομιά που βασίζονται σε πρωτότυπα, αλλά η ιδέα προστέθηκε στη γλώσσα ως μέρος της έκδοσης ECMAScript 2015 του προτύπου. Τα μαθήματα ήταν ήδη μέρος του TypeScript και τώρα το TypeScript χρησιμοποιεί την ίδια σύνταξη με το JavaScript. Ένα από τα πλεονεκτήματα του μεταγλωττιστή TypeScript είναι ότι μπορεί να μετατρέψει κώδικα με κλάσεις JavaScript σε παλαιότερο κώδικα JavaScript που συμμορφώνεται με τα πρότυπα πριν από το 2015.

Ημερομηνία γραφής

Υπάρχουν αρκετές μέθοδοι και αντικείμενα διαθέσιμα για τη λήψη και τον καθορισμό της ημερομηνίας και της ώρας στο TypeScript, που κληρονομούνται κυρίως από τη JavaScript. Το JavaTPoint έχει μια καλή λίστα με τον τρόπο λειτουργίας του.

Σεμινάριο TypeScript 

Είστε έτοιμοι να πάτε πιο βαθιά; Ενημερωθείτε για αυτά τα μαθήματα TypeScript:

  • Το TypeScript σε 5 λεπτά θα σας καθοδηγήσει στη διαδικασία εγκατάστασης του TypeScript εάν δεν το έχετε κάνει ήδη.
  • Αυτό το σεμινάριο κώδικα του Visual Studio δείχνει πώς τα IDE προσθέτουν πραγματικά στην παραγωγικότητα ανάπτυξης TypeScript.
  • Tutorial Tutorial για αρχάριους: Ο Οδηγός που λείπει είναι μια πολύ λεπτομερής εισαγωγή που θα είναι χρήσιμη ακόμη και αν έχετε αρκετά περιορισμένη εμπειρία JavaScript.

Αν θέλετε να μάθετε πώς να χρησιμοποιείτε το TypeScript με το React, η βιβλιοθήκη JavaScript για τη δημιουργία διεπαφών χρήστη που αναπτύχθηκε από το Facebook, ρίξτε μια ματιά στον τρόπο χρήσης του TypeScript με το React και το Redux από τον Ross Bulat και την ενότητα σχετικά με το React και το webpack στην τεκμηρίωση TypeScript. Καλή μάθηση!