H JavaScript είναι πλέον παντού. Με την τεράστια δυναμική που αποκτούν τα κορυφαία JavaScript frameworks όπως Angular, React, NativeScript, Ionic, Vue κ.α., μοιραία γεννιέται το ερώτημα: Πως μπορούμε να κάνουμε την JavaScript πιο εύκολη και διαχειρίσιμη χωρίς να χάσει τα κορυφαία χαρακτηριστικά της;

Η απάντηση δόθηκε από την Microsoft με την δημιουργία της TypeScript, από τον Anders Hejlsberg πίσω στο 2012.

Τι πραγματικά είναι η TypeScript?

Η TypeScript είναι μία επέκταση της Javascript. Διαφέρει από τους ανταγωνιστές της, όπως CoffeScript και Dart στο ότι απλός κώδικας JavaScript μπορεί να χρησιμοποιηθεί ταυτόχρονα με την TypeScript. Ως εκ τούτου, η JavaScript είναι TypeScript.

Αλλά η TypeScript, πρέπει να γίνει compile σε JavaScript πριν να μπορεί να τρέξει σε κάποια JavaScript engine, όπως ο browser ή ένας node.js server. Αυτό σημαίνει ότι δεν μπορούμε να ενσωματώσουμε TypeScript απευθείας σε μία web σελίδα μέσω του script tag, αλλά τα αρχεία της TypeScript (.ts) θα πρέπει να γίνουν compile σε JavaScript (.js) για χρήση. Ως εκ τούτου, η TypeScript δεν είναι JavaScript.

Πλεονεκτήματα

Αν δούμε το παράδειγμα του Playground της TypeScript βλέπουμε τον παρακάτω κώδικα γραμμένο σε TypeScript:

και πως αυτός μεταφράζεται σε Javascript

Όπως βλέπετε, υπάρχει δυνατότητα κλάσεων και είναι ένα από τα πλεονεκτήματα της TypeScript, η οποία υποστηρίζει όλες τις σύγχρονες λειτουργίες όπως modules, classes, constants, interfaces και arrow functions, που είναι μέρος της ECMAScript 6 (ES6).

Εδώ να σημειώσουμε για όσους δεν το γνωρίζουν, ότι η ECMAScript 6 είναι ένα σημαντικότατο update της γλώσσας JavaScript που περιλαμβάνει πολλές νέες λειτουργίες, οι οποίες όμως δεν έχουν ακόμα υλοποιηθεί σε όλους τους browsers.

Οπότε, όπως καταλαβαίνουμε, χρησιμοποιώντας την TypeScript μπορούμε να χρησιμοποιήσουμε τις πιο σύγχρονες λειτουργίες της ES6 χωρίς να χρειάζεται να ανησυχούμε για browser support ή node version support, αφού η TypeScript γίνεται compile σε “κανονική” JavaScript, και έτσι υπάρχει 100% συμβατότητα για όλες τις πλατφόρμες! Και η ιστορία συνεχίζεται με την TypeScript να υποστηρίζει μερικές λειτουργίες και της ES2017!

Angular, NativeScript και TypeScript

Η TypeScript έλαβε μία τεράστια ώθηση όταν η ομάδα της Angular ανακοίνωσε ότι η Angular 2 θα είναι γραμμένη σε TypeScript. Έτσι, η γλώσσα πήρε τεράστια προβολή και έβγαλε ασπροπρόσωπη και την ομάδα της NativeScript που από νωρίς υιοθέτησε την TypeScript