Έλεγχος δομής αντικειμένου στο TypeScript

Το TypeScript ελέγχει επίσης τη δομή του αντικειμένου. Ας δηλώσουμε το αντικείμενο μας με τον χρήστη:

typescriptlet user = {name: 'john', age: 30};

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

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

typescriptuser = {name: 'eric'}; // σφάλμα

Ας γράψουμε στη μεταβλητή ένα νέο αντικείμενο με τα ίδια κλειδιά, αλλά και με ένα επιπλέον κλειδί:

typescriptuser = {name: 'eric', age: 40, salary: 300}; // σφάλμα

Και τώρα ας γράψουμε στη μεταβλητή ένα αντικείμενο, που περιέχει μόνο τα κλειδιά 'name' και 'age':

typescriptuser = {name: 'eric', age: 40}; // λειτουργεί
Задание 1

Χωρίς να εκτελέσετε τον κώδικα, προσδιορίστε ποιο θα είναι το αποτέλεσμα εκτέλεσης του κώδικα:

typescriptlet date = {year: 2025, month: 12, day: 31};
date = {year: 2025, month: 12};
Задание 2

Χωρίς να εκτελέσετε τον κώδικα, προσδιορίστε ποιο θα είναι το αποτέλεσμα εκτέλεσης του κώδικα:

typescriptlet date = {year: 2025, month: 12, day: 31};
date = {year: 2025, month: 12, date: 7};