Πίνακας περιεχομένων[Κρύβω][Προβολή]
- 1. Τι ακριβώς είναι το TypeScript και σε τι διαφέρει από το JavaScript;
- 2. Ποια είναι μερικά αξιοσημείωτα χαρακτηριστικά του TypeScript;
- 3. Ποια είναι μερικά οφέλη από τη χρήση του TypeScript;
- 4. Ποια είναι μερικά μειονεκτήματα της χρήσης TypeScript;
- 5. Τι ακριβώς είναι τα στοιχεία του TypeScript;
- 6. Μπορείτε να εξηγήσετε τις διεπαφές στο TypeScript;
- 7. Τι είναι οι μεταβλητές στο TypeScript και πώς δηλώνονται με διάφορους τρόπους;
- 8. Πώς μπορεί να χρησιμοποιηθεί ένα υποσύνολο μιας διεπαφής για τη δημιουργία ενός νέου τύπου;
- 9. Τι εννοείτε με τον όρο «οποιοιδήποτε» τύποι και πότε πρέπει να τους χρησιμοποιήσω;
- 10. Πώς είναι το TypeScript μια γλώσσα με προαιρετική στατικά πληκτρολογημένη σύνταξη;
- 11. Στο TypeScript, τι σημαίνουν οι ενότητες;
- 12. Πώς λειτουργούν τα "enums" στο TypeScript;
- 13. Τι διακρίνει μια εσωτερική μονάδα από μια εξωτερική μονάδα;
- 14. Τι σημαίνει η Ανώνυμη Συνάρτηση του TypeScript;
- 15. Στο TypeScript, τι είναι ο χώρος ονομάτων και πώς τον δηλώνετε;
- 16. Ποιους τροποποιητές πρόσβασης υποστηρίζει το TypeScript;
- 17. Επιτρέπει το TypeScript υπερφόρτωση συναρτήσεων;
- 18. Πώς το TypeScript επιτρέπει προαιρετικά ορίσματα σε συναρτήσεις;
- 19. Πώς διαφέρουν το var, το let και το const το ένα από το άλλο;
- 20. Στο TypeScript, περιγράψτε τους διακοσμητές;
- 21. Στο TypeScript, τι σημαίνουν τα Mixins;
- 22. Τι ακριβώς είναι τα ψευδώνυμα τύπου στο TypeScript;
- 23. Τι σημαίνει ο όρος «μεταβλητή πεδίου εφαρμογής»;
- 24. Σε τι ακριβώς χρησιμοποιείται το noImplicitAny;
- 25. Πώς διαφέρουν οι τύποι ένωσης και τομής μεταξύ τους;
- 26. Πώς ορίζετε μια λέξη-κλειδί δήλωσης TypeScript;
- 27. Στο TypeScript, τι είναι τα γενόσημα;
- 28. Τι σημαίνει το JSX στο TypeScript;
- 29. Τι είναι τα TypeScript Ambients και πότε πρέπει να τα χρησιμοποιήσω;
- 30. Τι εννοείτε με τον όρο αφηρημένη κλάση στο TypeScript;
- 31. Τι ακριβώς είναι ένα αρχείο χάρτη TypeScript;
- 32. Στο TypeScript, τι είναι οι ισχυρισμοί τύπου;
- Συμπέρασμα
Η Microsoft ανέπτυξε και συνεχίζει να υποστηρίζει τη γλώσσα προγραμματισμού TypeScript. Με την προσθήκη στατικής πληκτρολόγησης ως επιλογή, είναι ένα συντακτικό υπερσύνολο JavaScript.
Γλώσσα ανάπτυξης εφαρμογών μεγάλης κλίμακας Το TypeScript μεταγλωττίζει JavaScript. Δεδομένου ότι το TypeScript είναι ένα υπερσύνολο JavaScript, τα προγράμματα που είναι γραμμένα σε JavaScript είναι επίσης έγκυρα στο TypeScript.
Ακολουθεί μια περιεκτική λίστα με τις πιο τυπικές ερωτήσεις συνέντευξης προγραμματιστών TypeScript και απαντήσεις σε περίπτωση που παρακολουθείτε μία.
1. Τι ακριβώς είναι το TypeScript και σε τι διαφέρει από το JavaScript;
Ένα υπερσύνολο JavaScript, το TypeScript μεταγλωττίζεται σε τυπική JavaScript. Από εννοιολογική άποψη, το TypeScript και η JavaScript είναι παρόμοια με το SASS και το CSS.
Με άλλα λόγια, το TypeScript είναι ES6 JavaScript με μερικές περισσότερες δυνατότητες. Η JavaScript είναι μια γλώσσα δέσμης ενεργειών που μοιάζει περισσότερο με την Python, ενώ η TypeScript είναι μια αντικειμενοστραφής, στατικά πληκτρολογημένη γλώσσα συγκρίσιμη με την Java και την C#.
Οι κλάσεις και οι διεπαφές αποτελούν μέρος της αντικειμενοστρεφούς σχεδίασης του TypeScript και η εξαγωγή συμπερασμάτων τύπου είναι ένα από τα πολλά διαθέσιμα εργαλεία χάρη στη στατική πληκτρολόγηση.
Το JavaScript γράφεται σε ένα αρχείο με επέκταση .js, ενώ το TypeScript γράφεται σε ένα αρχείο με επέκταση .ts.
Σε αντίθεση με το JavaScript, ο κώδικας TypeScript δεν μπορεί να εκτελεστεί απευθείας σε πρόγραμμα περιήγησης ή σε οποιαδήποτε άλλη πλατφόρμα και δεν είναι κατανοητός από τα προγράμματα περιήγησης. Στη συνέχεια, η πλατφόρμα προορισμού θα εκτελέσει την απλή JavaScript που δημιουργήθηκε από τα αρχεία .ts χρησιμοποιώντας το transpiler του TypeScript.
2. Ποια είναι μερικά αξιοσημείωτα χαρακτηριστικά του TypeScript;
- Η στατική πληκτρολόγηση είναι μια δυνατότητα του TypeScript που βοηθά τον έλεγχο τύπου κατά τη μεταγλώττιση. Έτσι, ακόμα και χωρίς να εκτελέσετε το σενάριο, μπορείτε να εντοπίσετε λάθη στον κώδικα καθώς τον γράφετε.
- Το DOM μπορεί να τροποποιηθεί χρησιμοποιώντας TypeScript για να προσθέσετε ή να αφαιρέσετε στοιχεία.
- Οποιοδήποτε λειτουργικό σύστημα, συμπεριλαμβανομένων των Windows, macOS και Linux, μπορεί να έχει εγκατεστημένο τον μεταγλωττιστή TypeScript.
- Οι κλάσεις, οι διεπαφές και οι λειτουργικές μονάδες είναι μερικές από τις λειτουργίες που προσφέρει το TypeScript. Μπορεί έτσι να δημιουργήσει αντικειμενοστραφή κώδικα για ανάπτυξη τόσο από την πλευρά του πελάτη όσο και από την πλευρά του διακομιστή.
- Η πλειονότητα των δυνατοτήτων του ECMAScript 2015 (ES 6, 7) περιλαμβάνονται ήδη στο TypeScript, συμπεριλαμβανομένων των συναρτήσεων κλάσης, διεπαφής, βέλους κ.λπ.
- Εάν χρησιμοποιείτε τη δυναμική πληκτρολόγηση JavaScript, το TypeScript υποστηρίζει επίσης προαιρετική στατική πληκτρολόγηση.
3. Ποια είναι μερικά οφέλη από τη χρήση του TypeScript;
- Οποιοσδήποτε μηχανισμός JavaScript ή πρόγραμμα περιήγησης μπορεί να εκτελέσει το TypeScript, καθώς είναι γρήγορο, εύκολο στην εκμάθηση και εκτελείται γρήγορα.
- Μοιράζεται την ίδια σύνταξη και σημασιολογία με το JavaScript.
- Αυτό διευκολύνει την ταχύτερη σύνταξη κώδικα front-end από προγραμματιστές backend.
- Ενσωματώνει δυνατότητες ES6 και ES7 που μπορεί λειτουργία σε JavaScript Κινητήρες ES5 όπως το Node.js.
- Οι υπάρχουσες βιβλιοθήκες JavaScript όπως Jquery, D3.js, κ.λπ. υποστηρίζονται μέσω του αρχείου Definition, το οποίο έχει την επέκταση the.d.ts.
- Ένα σενάριο JavaScript που υπάρχει ήδη μπορεί να καλέσει τον κώδικα TypeScript. Επίσης, ενσωματώνεται απρόσκοπτα με τα τρέχοντα πλαίσια JavaScript και τις βιβλιοθήκες.
4. Ποια είναι μερικά μειονεκτήματα της χρήσης TypeScript;
- Η κωδικοποίηση με TypeScript απαιτεί μια μακρά διαδικασία μεταγλώττισης.
- Δεν υποστηρίζει τάξεις που είναι αφηρημένες.
- Η ποιότητα των αρχείων ορισμού τύπου είναι ένα πρόβλημα.
- Οποιαδήποτε βιβλιοθήκη τρίτου μέρους πρέπει να έχει αρχείο ορισμού για να χρησιμοποιηθεί.
- Ένα βήμα μεταγλώττισης είναι απαραίτητο για τη μετατροπή του TypeScript σε JavaScript, εάν θέλουμε να εκτελέσουμε την εφαρμογή TypeScript στο πρόγραμμα περιήγησης.
- Η JavaScript χρησιμοποιείται από προγραμματιστές ιστού εδώ και πολλά χρόνια και το TypeScript δεν παρέχει τίποτα νέο.
5. Τι ακριβώς είναι τα στοιχεία του TypeScript;
Στο TypeScript, υπάρχουν τρεις κύριες κατηγορίες στοιχείων, όπως:
- Γλώσσα: Περιλαμβάνει σχολιασμούς για τον τύπο, τις λέξεις-κλειδιά και τη σύνταξη.
- Μεταγλωττιστής TypeScript: Οι οδηγίες TypeScript μεταφράζονται σε JavaScript από αυτόν τον μεταγλωττιστή (tsc).
- Υπηρεσία γλώσσας TypeScript: Η Υπηρεσία Γλωσσών προσφέρει εφαρμογές που μοιάζουν με πρόγραμμα επεξεργασίας ως δεύτερο επίπεδο πάνω από τη βασική διαδικασία μεταγλώττισης. Το τυπικό σύνολο κοινών λειτουργιών επεξεργασίας υποστηρίζεται από τη γλωσσική υπηρεσία.
6. Μπορείτε να εξηγήσετε τις διεπαφές στο TypeScript;
Το TypeScript χρησιμοποιεί διεπαφές για να καθορίσει τη σύνταξη των οντοτήτων. Με άλλα λόγια, φόρμες δεδομένων όπως αντικείμενα ή μια σειρά στοιχείων μπορούν να περιγραφούν χρησιμοποιώντας διεπαφές. Η λέξη-κλειδί διεπαφής, το όνομα της διεπαφής και ο ορισμός της χρησιμοποιούνται για τη δήλωση διεπαφών. Ας εξετάσουμε τη βασική διεπαφή ενός αντικειμένου χρήστη.
Ο τύπος μιας μεταβλητής μπορεί στη συνέχεια να οριστεί χρησιμοποιώντας τη διεπαφή (παρόμοια με τον τρόπο που εκχωρείτε πρωτεύοντες τύπους σε μια μεταβλητή). Οι ιδιότητες της διεπαφής θα πληρούνται στη συνέχεια από μια μεταβλητή του τύπου Χρήστη.
Το έργο σας TypeScript επωφελείται από διεπαφές επειδή παρέχουν ομοιομορφία. Επιπλέον, οι διεπαφές βελτιώνουν τα εργαλεία του έργου σας ενισχύοντας τις δυνατότητες αυτόματης συμπλήρωσης IDE και διασφαλίζοντας ότι παρέχονται οι σωστές τιμές στους κατασκευαστές και τις μεθόδους.
7. Τι είναι οι μεταβλητές στο TypeScript και πώς δηλώνονται με διάφορους τρόπους;
Μια μεταβλητή είναι μια ειδικά καθορισμένη περιοχή της μνήμης που χρησιμοποιείται για τη διατήρηση τιμών. Μια άνω και κάτω τελεία (:) τοποθετείται μετά το όνομα της μεταβλητής και ακολουθείται από τον τύπο κατά τη δήλωση μιας μεταβλητής στο TypeScript. Δηλώνουμε μεταβλητές με τη λέξη-κλειδί var, όπως και στο JavaScript.
Πρέπει να τηρούνται ορισμένες οδηγίες κατά τη δήλωση μιας μεταβλητής στο Typescript:
- Το όνομα δεν μπορεί να ξεκινά με αριθμό.
- Το όνομα της μεταβλητής πρέπει να περιέχει γράμματα ή αριθμούς.
- Το σύμβολο του δολαρίου ($) και η υπογράμμιση (_) είναι οι μόνοι ειδικοί χαρακτήρες που επιτρέπονται σε αυτό το πεδίο.
8. Πώς μπορεί να χρησιμοποιηθεί ένα υποσύνολο μιας διεπαφής για τη δημιουργία ενός νέου τύπου;
Παρέχοντας έναν υπάρχοντα τύπο ή διεπαφή και επιλέγοντας τα κλειδιά που θα εξαιρεθούν από τον νέο τύπο, μπορείτε να δημιουργήσετε έναν νέο τύπο στο TypeScript χρησιμοποιώντας τον τύπο βοηθητικού προγράμματος παράλειψη.
Το παράδειγμα που ακολουθεί δείχνει πώς να δημιουργήσετε έναν νέο τύπο που ονομάζεται UserPreview που βασίζεται στη διεπαφή χρήστη αλλά εξαιρεί την ιδιότητα email.
9. Τι εννοείτε με τον όρο «οποιοιδήποτε» τύποι και πότε πρέπει να τους χρησιμοποιήσω;
Μερικές φορές χρειάζεται να αποθηκεύσετε μια τιμή σε μια μεταβλητή, αλλά δεν είστε σίγουροι για τον τύπο της μεταβλητής εκ των προτέρων. Η τιμή θα μπορούσε να προέρχεται από είσοδο χρήστη ή αίτημα API, για παράδειγμα. Μπορείτε να δώσετε οποιονδήποτε τύπο τιμής σε έναν τύπο μεταβλητής χρησιμοποιώντας τον τύπο "οποιοσδήποτε".
Όταν ο τύπος μιας μεταβλητής δεν καθορίζεται ρητά και ο μεταγλωττιστής δεν μπορεί να τον προσδιορίσει από το περιβάλλον, το TypeScript πιστεύει ότι η μεταβλητή είναι οποιουδήποτε τύπου.
10. Πώς είναι το TypeScript μια γλώσσα με προαιρετική στατικά πληκτρολογημένη σύνταξη;
Είναι δυνατό να δώσουμε εντολή στον μεταγλωττιστή να αγνοήσει τον τύπο μιας μεταβλητής στο TypeScript, καθώς είναι προαιρετικά πληκτρολογημένη στατικά. Οποιοσδήποτε τύπος δεδομένων μπορεί να χρησιμοποιηθεί για την εκχώρηση οποιουδήποτε είδους τιμής στη μεταβλητή. Κατά τη μεταγλώττιση, το TypeScript δεν θα παρέχει κανέναν έλεγχο σφαλμάτων.
11. Στο TypeScript, τι σημαίνουν οι ενότητες;
Είναι αποτελεσματική η ομαδοποίηση σχετικών μεταβλητών, συναρτήσεων, κλάσεων, διεπαφών κ.λπ. χρησιμοποιώντας ενότητες. Μπορεί να χρησιμοποιηθεί, αλλά όχι σε παγκόσμια εμβέλεια, μόνο μέσα στο δικό του πεδίο εφαρμογής.
Ουσιαστικά, οι καθορισμένες μεταβλητές, οι συναρτήσεις, οι κλάσεις και οι διεπαφές μιας ενότητας δεν μπορούν να έχουν άμεση πρόσβαση εκτός της ενότητας.
Η λέξη-κλειδί εξαγωγής μπορεί να χρησιμοποιηθεί για τη δημιουργία μιας λειτουργικής μονάδας, ενώ η λέξη-κλειδί εισαγωγής μπορεί να χρησιμοποιηθεί για να συμπεριλάβει μια λειτουργική μονάδα σε μια άλλη λειτουργική μονάδα.
12. Πώς λειτουργούν τα "enums" στο TypeScript;
Μια μέθοδος ορισμού μιας συλλογής ονομασμένων σταθερών είναι η χρήση αριθμών ή απαριθμημένων τύπων. Αυτές οι δομές δεδομένων έχουν ένα σταθερό μήκος και μια συλλογή από σταθερές τιμές.
Κατά την αναπαράσταση μιας συλλογής εναλλακτικών λύσεων για μια δεδομένη τιμή στο TypeScript, τα enums χρησιμοποιούνται συχνά για να περιγράψουν τις δυνατότητες χρησιμοποιώντας ένα σύνολο ζευγών κλειδιών/τιμών.
Ας δούμε μια απεικόνιση ενός enum που χρησιμοποιείται για την παροχή ποικίλων ειδών χρηστών.
Τα enums μετατρέπονται εσωτερικά σε κανονικά αντικείμενα JavaScript από το TypeScript μετά τη μεταγλώττιση. Επομένως, η χρήση των enums είναι προτιμότερη από τη χρήση πολλών ξεχωριστών μεταβλητών const.
Ο κώδικάς σας είναι ασφαλής για τον τύπο και είναι πιο κατανοητός λόγω της ομαδοποίησης που παρέχουν τα enums.
13. Τι διακρίνει μια εσωτερική μονάδα από μια εξωτερική μονάδα;
Εσωτερική ενότητα:
- Οι εσωτερικές μονάδες ήταν ένα χαρακτηριστικό της προηγούμενης επανάληψης του Typescript.
- Το όνομα και το σώμα των εσωτερικών λειτουργικών μονάδων καθορίζονται με τη χρήση ModuleDeclarations.
- Αυτά είναι μέλη άλλων λειτουργικών μονάδων που είναι τοπικά ή εξάγονται.
- Οι κλάσεις, οι διεπαφές, οι συναρτήσεις και οι μεταβλητές ομαδοποιούνται σε εσωτερικές μονάδες, οι οποίες μπορούν να εξαχθούν σε άλλη λειτουργική μονάδα.
Εξωτερική ενότητα:
- Στην πιο πρόσφατη έκδοση, οι εξωτερικές μονάδες αναφέρονται ως λειτουργικές μονάδες.
- Ένα ξεχωριστό αρχείο προέλευσης γνωστό ως εξωτερική λειτουργική μονάδα χρησιμοποιείται για τη δημιουργία τους και το καθένα έχει τουλάχιστον μία δήλωση εισαγωγής ή εξαγωγής.
- Στην πιο πρόσφατη έκδοση, οι εξωτερικές μονάδες αναφέρονται ως λειτουργικές μονάδες.
- Οι εσωτερικές δηλώσεις των ορισμών της ενότητας μπορούν να κρυφτούν χρησιμοποιώντας εξωτερικές μονάδες, αφήνοντας ορατές μόνο τις μεθόδους και τα ορίσματα που συνδέονται με την καθορισμένη μεταβλητή.
14. Τι σημαίνει η Ανώνυμη Συνάρτηση του TypeScript;
Οι συναρτήσεις που ταξινομούνται ως ανώνυμες δεν διαθέτουν όνομα συνάρτησης ως αναγνωριστικό. Αυτές οι ρουτίνες ορίζονται δυναμικά κατά τη διάρκεια του χρόνου εκτέλεσης. Όπως οι κανονικές συναρτήσεις, οι ανώνυμες συναρτήσεις μπορούν να λαμβάνουν εισόδους και να παράγουν αποτελέσματα.
Μια ανώνυμη συνάρτηση είναι συνήθως μη προσβάσιμη από τη στιγμή που έχει δημιουργηθεί. Οι μεταβλητές μπορούν να αντιστοιχιστούν σε μια ανώνυμη συνάρτηση.
15. Στο TypeScript, τι είναι ο χώρος ονομάτων και πώς τον δηλώνετε;
Ο χώρος ονομάτων ομαδοποιεί λογικά τις λειτουργίες. Αυτά διατηρούν εσωτερικά τον κώδικα κληρονομιάς γραφομηχανής. Περιλαμβάνει τα χαρακτηριστικά και τα πράγματα με ιδιαίτερες συνδέσεις.
Ένα άλλο όνομα για έναν χώρο ονομάτων είναι μια εσωτερική μονάδα. Οι διεπαφές, οι κλάσεις, οι συναρτήσεις και οι μεταβλητές μπορούν όλα να συμπεριληφθούν σε έναν χώρο ονομάτων για να παρέχουν μια συλλογή συνδεδεμένων λειτουργιών.
16. Ποιους τροποποιητές πρόσβασης υποστηρίζει το TypeScript;
Τα παρακάτω είναι παραδείγματα του τρόπου με τον οποίο οι τροποποιητές δημόσιας, ιδιωτικής και προστατευμένης πρόσβασης στο TypeScript μπορούν να χρησιμοποιηθούν για τον έλεγχο της προσβασιμότητας ενός μέλους κλάσης:
- Δημόσιο – Η πρόσβαση είναι διαθέσιμη σε κάθε μέλος της κλάσης, σε όλες τις απόγονες κλάσεις της και σε κάθε παρουσία της κλάσης.
- Προστατευμένα – Είναι προσβάσιμα σε κάθε μέλος της κλάσης και σε όλες τις υποκατηγορίες της. Ωστόσο, μια παρουσία κλάσης δεν μπορεί να έχει πρόσβαση.
- Η ιδιωτική πρόσβαση σε αυτά περιορίζεται μόνο στα μέλη της τάξης.
Εφόσον η JavaScript είναι εύχρηστη, εάν δεν δοθεί ένας τροποποιητής πρόσβασης, θεωρείται ότι είναι δημόσιος.
17. Επιτρέπει το TypeScript υπερφόρτωση συναρτήσεων;
Ναι, η υπερφόρτωση συναρτήσεων υποστηρίζεται από το TypeScript. Αλλά τώρα που γίνεται είναι περίεργο. Επομένως, κατά την υπερφόρτωση με TypeScript, υπάρχει μόνο μία υλοποίηση με ποικιλία υπογραφών.
Ενώ η δεύτερη υπογραφή περιέχει μια παράμετρο κειμένου τύπου, η πρώτη υπογραφή έχει μόνο μία παράμετρο αριθμού τύπου. Η τρίτη συνάρτηση, η οποία περιλαμβάνει ένα όρισμα τύπου any, περιέχει την πραγματική υλοποίηση.
Στη συνέχεια, η υλοποίηση καθορίζει τον τύπο της παρεχόμενης παραμέτρου και εκτελεί μια ξεχωριστή ενότητα κώδικα σύμφωνα με αυτόν τον προσδιορισμό.
18. Πώς το TypeScript επιτρέπει προαιρετικά ορίσματα σε συναρτήσεις;
Σε αντίθεση με την JavaScript, εάν επιχειρήσετε να καλέσετε μια συνάρτηση χωρίς να καθορίσετε την ακριβή ποσότητα και τα είδη των παραμέτρων όπως αναφέρονται στην υπογραφή της συνάρτησής της, ο μεταγλωττιστής TypeScript θα εμφανίσει σφάλμα.
Μπορείτε να χρησιμοποιήσετε προαιρετικές παραμέτρους χρησιμοποιώντας το σύμβολο του ερωτηματικού ('?') για να αντιμετωπίσετε αυτό το ζήτημα. Δείχνει ότι οι προαιρετικές παράμετροι μπορούν να υποδηλωθούν με την προσθήκη ενός "?" σε εκείνα που μπορεί να λάβουν ή όχι μια τιμή.
19. Πώς διαφέρουν το var, το let και το const το ένα από το άλλο;
Τρεις διαφορετικοί τρόποι για να δηλώσετε μια μεταβλητή προσφέρονται από το TypeScript, ο καθένας με μια προτεινόμενη εφαρμογή.
var: Δηλώνει μια καθολική μεταβλητή ή μια μεταβλητή με εύρος συνάρτησης με οδηγίες συμπεριφοράς και εύρους μεταβλητών της JavaScript. Οι μεταβλητές δεν χρειάζεται να οριστούν οι τιμές τους όταν δηλώνονται.
αφήνω: δηλώνει μια μεταβλητή μπλοκ τοπικού εύρους. Αφήστε τις μεταβλητές να μην χρειάζεται να οριστεί η τιμή μιας μεταβλητής όταν δηλώνονται. Ο όρος "τοπική μεταβλητή εμβέλειας μπλοκ" αναφέρεται σε μια μεταβλητή στην οποία είναι δυνατή η πρόσβαση μόνο από το εσωτερικό του μπλοκ στο οποίο περιέχεται, όπως μια συνάρτηση, ένα μπλοκ if/else ή ένας βρόχος. Αφήστε τις μεταβλητές να μην μπορούν να διαβαστούν από ή να γραφτούν πριν δηλωθούν, σε αντίθεση με το var.
const: Δηλώνει μια τιμή για μια σταθερά εμβέλειας μπλοκ που δεν μπορεί να αλλαχθεί αφού έχει αρχικοποιηθεί. Οι μεταβλητές Const πρέπει να αρχικοποιηθούν πριν δηλωθούν. Για μεταβλητές που παραμένουν σταθερές καθ' όλη τη διάρκεια της ύπαρξής τους, αυτό είναι το βέλτιστο.
20. Στο TypeScript, περιγράψτε τους διακοσμητές;
Ένα αξεσουάρ, ιδιότητα, παράμετρος, κλάση, συνάρτηση ή διακοσμητής μπορούν όλα να δηλωθούν με συγκεκριμένο τρόπο ως διακοσμητές. Οι διακοσμητές είναι συναρτήσεις με το πρόθεμα @expression που θα καλούνται κατά το χρόνο εκτέλεσης με λεπτομέρειες σχετικά με τη διακοσμημένη δήλωση.
Η έκφραση πρέπει να αξιολογεί μια λειτουργία για να δουλέψουν οι διακοσμητές.
Τα TypeScript Decorators παρέχουν το στόχο της δηλωτικής προσθήκης σχολιασμών και πληροφοριών στον τρέχοντα κώδικα.
Στο αρχείο μας tsconfig.json ή στη γραμμή εντολών, πρέπει να ενεργοποιήσετε την επιλογή μεταγλωττιστή ExperimentalDecorators για να ενεργοποιήσετε την πειραματική υποστήριξη για διακοσμητές:
21. Στο TypeScript, τι σημαίνουν τα Mixins;
Τα Mixins είναι μια τεχνική δημιουργίας κλάσεων από επαναχρησιμοποιήσιμα μέρη στο Javascript και ανάμειξης μερικών κλάσεων για τη δημιουργία πιο περίπλοκων πλήρεις κλάσεις.
Η ιδέα είναι απλή: η συνάρτηση Β δέχεται την κλάση Α και επιστρέφει μια νέα κλάση με την προστιθέμενη λειτουργικότητά της, σε αντίθεση με την κλάση Α που επεκτείνει την κλάση Β για να αποκτήσει τη λειτουργικότητά της. Η συνάρτηση Β σε αυτή την περίπτωση είναι ένα mixin.
22. Τι ακριβώς είναι τα ψευδώνυμα τύπου στο TypeScript;
Τα ψευδώνυμα τύπου αλλάζουν το όνομα ενός τύπου. Τα ψευδώνυμα τύπων, όπως και οι διεπαφές, μπορούν να χρησιμοποιηθούν για την ονομασία πρωτόγονων, ενώσεων, πλειάδων και οποιωνδήποτε άλλων τύπων που διαφορετικά θα έπρεπε να οριστούν με το χέρι.
Το ψευδώνυμο δεν δημιουργεί νέο τύπο. Αντίθετα, αλλάζει το όνομα ενός υπάρχοντος τύπου. Το ψευδώνυμο ενός πρωτόγονου δεν είναι πραγματικά πρακτικό, αν και μπορεί να είναι επωφελές για την τεκμηρίωση.
Τα ψευδώνυμα τύπου, όπως οι διεπαφές, μπορούν να είναι καθολικά. Το μόνο που έχετε να κάνετε είναι να προσθέσετε παραμέτρους τύπου και να τις χρησιμοποιήσετε στη δεξιά πλευρά της δήλωσης ψευδώνυμου.
23. Τι σημαίνει ο όρος «μεταβλητή πεδίου εφαρμογής»;
Η JavaScript υποστηρίζει μεταβλητές τοπικού και καθολικού εύρους. Το εύρος είναι μια συλλογή αντικειμένων, μεταβλητών και συναρτήσεων.
Ένα παράδειγμα δήλωσης μιας μεταβλητής σε δύο πεδία είναι:
- Μεταβλητή με τοπικό εύρος – Χρησιμεύει ως αντικείμενο συνάρτησης για χρήση εντός συναρτήσεων.
- Μεταβλητή με καθολικό εύρος – Αυτό το αντικείμενο παραθύρου μπορεί να χρησιμοποιηθεί τόσο εντός όσο και εκτός συναρτήσεων
24. Σε τι ακριβώς χρησιμοποιείται το noImplicitAny;
Η επεξεργασία από τον μεταγλωττιστή TypeScript των σιωπηρών τύπων του έργου σας αλλάζει από την ιδιότητα noImplicitAny στο αρχείο διαμόρφωσης tsconfig.json για έργα TypeScript.
Η σημαία noImplicitAny μπορεί να οριστεί σε true ή false και μπορεί πάντα να αλλάξει μετά την προετοιμασία. Δεδομένου ότι κάθε έργο είναι μοναδικό, δεν υπάρχει σωστή ή λάθος απάντηση σχετικά με το ποιος πρέπει να είναι αυτός ο αριθμός.
Η κατανόηση των διακρίσεων μεταξύ των καταστάσεων ενεργοποίησης και απενεργοποίησης της σημαίας μπορεί να σας βοηθήσει να επιλέξετε ποια ρύθμιση θα χρησιμοποιήσετε για τη σημαία.
Ο μεταγλωττιστής δεν καθορίζει τον τύπο μιας μεταβλητής με βάση τον τρόπο χρήσης της εάν η σημαία noImplicitAny έχει οριστεί σε false (η προεπιλογή). Αντίθετα, ο τύπος ορίζεται σε οποιοδήποτε από προεπιλογή από τον μεταγλωττιστή.
Ωστόσο, εάν η επιλογή noImplicitAny οριστεί σε true, ο μεταγλωττιστής θα προσπαθήσει να συμπεράνει τον τύπο και θα δημιουργήσει ένα σφάλμα χρόνου μεταγλώττισης εάν δεν είναι σε θέση να το κάνει.
25. Πώς διαφέρουν οι τύποι ένωσης και τομής μεταξύ τους;
Αντί να δημιουργείτε νέα είδη από την αρχή, οι ενώσεις και οι τύποι διασταύρωσης σάς επιτρέπουν να συνθέσετε και να αναμίξετε υπάρχοντες τύπους. Τόσο η ένωση όσο και η διασταύρωση έχουν διακριτικές ιδιότητες που τις καθιστούν ιδανικές για ορισμένες περιπτώσεις χρήσης.
Ένας τύπος που μπορεί να είναι ένας από πολλά είδη αναφέρεται ως τύπος ένωσης. Η λίστα των τύπων που θα χρησιμοποιηθούν στον νέο τύπο χωρίζεται χρησιμοποιώντας το | σύμβολο (κάθετη γραμμή) σε τύπους ένωσης.
Ας δούμε μια απεικόνιση:
Από την άλλη πλευρά, η τομή ορίζεται ως ένας τύπος που συγχωνεύει πολλούς τύπους σε έναν, ενσωματώνοντας όλα τα χαρακτηριστικά κάθε τύπου για να σχηματίσει έναν νέο τύπο. Η λίστα των ειδών που θα συγχωνευθούν χωρίζεται σε διασταυρώσεις χρησιμοποιώντας το σύμβολο &.
Ας δούμε μια απεικόνιση:
26. Πώς ορίζετε μια λέξη-κλειδί δήλωσης TypeScript;
Δεν υπάρχουν αρχεία δήλωσης TypeScript σε βιβλιοθήκες ή πλαίσια JavaScript. Ωστόσο, πρέπει να χρησιμοποιήσετε τη λέξη-κλειδί δήλωση για να τις χρησιμοποιήσετε στο αρχείο TypeScript χωρίς να αντιμετωπίσετε σφάλματα μεταγλώττισης.
Όταν θέλετε να καθορίσετε μια μεταβλητή που θα μπορούσε να υπάρχει ήδη κάπου αλλού, χρησιμοποιείτε τη λέξη-κλειδί δήλωση σε δηλώσεις και μεθόδους περιβάλλοντος.
27. Στο TypeScript, τι είναι τα γενόσημα;
Ένα εργαλείο που ονομάζεται TypeScript Generics προσφέρει μια μέθοδο για την παραγωγή επαναχρησιμοποιήσιμων ανταλλακτικών. Αντί να εργάζεται με μία μόνο μορφή δεδομένων, μπορεί να αναπτύξει στοιχεία που μπορούν να λειτουργήσουν με μια σειρά τύπων δεδομένων.
Επιπλέον, προσφέρει ασφάλεια τύπου χωρίς να θυσιάζει την απόδοση ή την παραγωγικότητα. Μπορούμε να δημιουργήσουμε γενικές κλάσεις, γενικές συναρτήσεις, γενικές μεθόδους και γενικές διεπαφές χάρη στα γενικά.
Τα γενικά είναι συλλογές με υψηλή πληκτρολόγηση, καθώς μια παράμετρος τύπου είναι γραμμένη μεταξύ των αγκύλων ανοιχτής () και κλεισίματος (>). Χρησιμοποιεί ένα μοναδικό είδος μεταβλητής τύπου που ονομάζεται T που σημαίνει τύπους.
28. Τι σημαίνει το JSX στο TypeScript;
Το JSX είναι μια νόμιμη JavaScript που μπορεί να μετατραπεί από μια ενσωματωμένη σύνταξη τύπου XML. Μαζί με το πλαίσιο React, το JSX κέρδισε δημοτικότητα.
Η άμεση μεταγλώττιση, η επαλήθευση τύπου και η ενσωμάτωση του JSX σε JavaScript υποστηρίζονται από το TypeScript. Πρέπει να δώσετε στο αρχείο σας επέκταση a.tsx και να ενεργοποιήσετε την επιλογή JSX εάν θέλετε να τη χρησιμοποιήσετε.
29. Τι είναι τα TypeScript Ambients και πότε πρέπει να τα χρησιμοποιήσω;
Ο μεταγλωττιστής ενημερώνεται για τον πραγματικό πηγαίο κώδικα που βρίσκεται αλλού μέσω δηλώσεων περιβάλλοντος.
Θα σπάσει χωρίς προηγούμενη ειδοποίηση, εάν επιχειρήσουμε να χρησιμοποιήσουμε αυτούς τους πηγαίους κώδικες κατά την εκτέλεση αλλά δεν υπάρχουν. Τα αρχεία που μοιάζουν με έγγραφα είναι αρχεία δηλώσεων περιβάλλοντος.
Εάν αλλάξει η πηγή, η τεκμηρίωση πρέπει να ενημερωθεί και θα προκύψουν προβλήματα με τον μεταγλωττιστή εάν δεν αλλάξει το αρχείο δήλωσης περιβάλλοντος.
Επιπλέον, μας δίνει τη δυνατότητα να αξιοποιήσουμε γνωστές βιβλιοθήκες JavaScript που χρησιμοποιούνται ήδη ευρέως, όπως jQuery, AngularJS, NodeJS κ.λπ.
30. Τι εννοείτε με τον όρο αφηρημένη κλάση στο TypeScript;
Οι αφηρημένες κλάσεις ορίζουν τη σύμβαση ενός αντικειμένου χωρίς να επιτρέπουν την άμεση δημιουργία αντικειμένου. Ωστόσο, μια αφηρημένη τάξη θα μπορούσε επίσης να προσφέρει τις πληροφορίες υλοποίησης του μέλους της.
Ένα ή περισσότερα αφηρημένα μέλη μπορούν να βρεθούν σε μια αφηρημένη τάξη. Τα αφηρημένα μέλη της υπερκλάσης πρέπει στη συνέχεια να έχουν μια υλοποίηση που παρέχεται από οποιεσδήποτε κλάσεις που επεκτείνουν την αφηρημένη κλάση.
Ας ρίξουμε μια ματιά σε ένα παράδειγμα TypeScript μιας αφηρημένης κλάσης και πώς μια διαφορετική κλάση μπορεί να την επεκτείνει. Αν και και οι δύο κατηγορίες Car και Bike στο παρακάτω παράδειγμα επεκτείνουν την κατηγορία Vehicle, η καθεμία υλοποιεί τη λειτουργία drive() με μοναδικό τρόπο.
31. Τι ακριβώς είναι ένα αρχείο χάρτη TypeScript;
Ένα αρχείο χάρτη προέλευσης που ονομάζεται αρχείο χάρτη TypeScript περιέχει δεδομένα σχετικά με τα αρχικά μας αρχεία. Τα αρχεία χάρτη προέλευσης ή τα αρχεία .map, επιτρέπουν στα εργαλεία να αντιστοιχούν μεταξύ του κώδικα JavaScript που εξάγεται και των αρχείων πηγής TypeScript που τον παρήγαγαν.
Επιπλέον, αυτά τα αρχεία μπορούν να καταναλωθούν από προγράμματα εντοπισμού σφαλμάτων, επιτρέποντάς μας να διορθώσουμε το αρχείο TypeScript αντί για το αρχείο JavaScript.
32. Στο TypeScript, τι είναι οι ισχυρισμοί τύπου;
Ενώ η διεκδίκηση τύπου λειτουργεί παρόμοια με τη μετάδοση τύπων σε άλλες γλώσσες όπως η C# και η Java, δεν πραγματοποιεί επαλήθευση τύπου ή αναδιάταξη δεδομένων.
Ενώ η διαβεβαίωση τύπου δεν έχει καμία επίδραση στο χρόνο εκτέλεσης, η χύτευση τύπου προσφέρει αυτήν την υποστήριξη. Οι ισχυρισμοί τύπου, από την άλλη πλευρά, χρησιμοποιούνται μόνο από τον μεταγλωττιστή και παρέχουν καθοδήγηση για το πώς θέλουμε να εξεταστεί ο κώδικάς μας.
Συμπέρασμα
Εν κατακλείδι, ελπίζουμε ότι αυτές οι ερωτήσεις συνέντευξης TypeScript θα σας βοηθήσουν, είτε είστε προγραμματιστής που ετοιμάζεται για μια συνέντευξη εργασίας είτε διευθυντής προσλήψεων που προσπαθεί να βρει τον καλύτερο υποψήφιο.
Να θυμάστε ότι η διαδικασία πρόσληψης περιλαμβάνει περισσότερα από τεχνική εμπειρογνωμοσύνη. Για να διασφαλίσετε ότι προσελκύετε (ή εντοπίσετε τον κατάλληλο υποψήφιο για) τη θέση εργασίας, οι προηγούμενες εμπειρίες και οι μαλακές δεξιότητες είναι εξίσου σημαντικές.
Πολλές ερωτήσεις συνέντευξης TypeScript είναι ανοιχτού τύπου και δεν έχουν ούτε μία σωστή απάντηση, γι' αυτό να το έχετε υπόψη σας.
Οι συνεντευξιαζόμενοι ενδιαφέρονται για το σκεπτικό πίσω από τις απαντήσεις σας.
Να είστε πάντα έτοιμοι για επακόλουθες ερωτήσεις που εξηγούν πώς καταλήξατε στην απάντησή σας. Περιγράψτε τη διαδικασία σκέψης σας.
Αφήστε μια απάντηση