Έλεγχος δομής αντικειμένου στο TypeScript
Το TypeScript ελέγχει επίσης τη δομή του αντικειμένου. Ας δηλώσουμε το αντικείμενο μας με τον χρήστη:
let user = {name: 'john', age: 30};
Τη στιγμή της δήλωσης, το TypeScript απομνημονεύει
ότι στο αντικείμενό μας υπάρχουν τα κλειδιά 'name'
και 'age', και στη συνέχεια ελέγχει ώστε
στη μεταβλητή να αποθηκεύεται ένα αντικείμενο ακριβώς με αυτά τα
κλειδιά.
Η προσπάθεια εγγραφής στη μεταβλητή ενός διαφορετικού αντικειμένου οδηγεί σε σφάλμα μεταγλώττισης. Ας δοκιμάσουμε. Ας γράψουμε στη μεταβλητή ένα αντικείμενο, στο οποίο λείπει ένα κλειδί:
user = {name: 'eric'}; // σφάλμα
Ας γράψουμε στη μεταβλητή ένα νέο αντικείμενο με τα ίδια κλειδιά, αλλά και με ένα επιπλέον κλειδί:
user = {name: 'eric', age: 40, salary: 300}; // σφάλμα
Και τώρα ας γράψουμε στη μεταβλητή ένα αντικείμενο,
που περιέχει μόνο τα κλειδιά 'name' και
'age':
user = {name: 'eric', age: 40}; // λειτουργεί
Χωρίς να εκτελέσετε τον κώδικα, προσδιορίστε ποιο θα είναι το αποτέλεσμα εκτέλεσης του κώδικα:
let date = {year: 2025, month: 12, day: 31};
date = {year: 2025, month: 12};
Χωρίς να εκτελέσετε τον κώδικα, προσδιορίστε ποιο θα είναι το αποτέλεσμα εκτέλεσης του κώδικα:
let date = {year: 2025, month: 12, day: 31};
date = {year: 2025, month: 12, date: 7};