Контрол на структурата на обекта в 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};