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

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

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

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

Запишем теперь в нашу переменную соответствующий объект:

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

Можно слить обе операции в одну строку: объявить объект и сразу записать в него значение:

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

После этого TypeScript займется контролем структуры и типов данных объекта и будет выдавать ошибку при попытке что-то изменить неправильным образом. Пример:

user.name = 123; // ошибка

Не запуская код определите каким будет результат выполнения кода:

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