Структура на обект в TypeScript

Можем да не разчитаме на TypeScript в отношение на определяне на структурата на обект, а да я укажем като тип при деклариране на променлива.

Нека, например, при деклариране на променливата user кажем, че това е обект, в полето 'name' на който се съхранява - низ, а в полето 'age' - число:

typescriptlet user: {name: string, age: number};

Нека сега запишем в нашата променлива съответстващ обект:

typescriptuser = {name: 'john', age: 30};

Можем да обединим и двете операции в един ред: да декларираме обект и веднага да запишем в него стойност:

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

След това TypeScript ще се заеме с контрола на структурата и типовете данни на обекта и ще извежда грешка при опит за промяна по неправилен начин. Пример:

typescriptuser.name = 123; // грешка
Задание 1

Без да пускате кода, определете какъв ще бъде резултатът от изпълнението на кода:

typescriptlet date: {year: number, month: number, day: number};
date = {year: 2025, month: 12, day: '01'};