Контроль типов значений объекта в TypeScript

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

Посмотрим на примере нашего объекта с юзером. Объявим его:

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

После объявления TypeScript проанализировал тип данных каждого значения и запомнил, что в поле 'name' - строка, а в поле 'age' - число.

Теперь попытка записать в поле значение другого типа закончится ошибкой.

Пример:

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

Пример:

typescriptuser.age = 'eee'; // ошибка

Пример:

typescriptuser.age = '30'; // ошибка
Задание 1

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

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

console.log(date);
Задание 2

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

typescriptlet product = {code: '123', name: 'apple', price: 12};
product.code = 123;

console.log(product);
Задание 3

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

typescriptlet product = {code: '123', name: 'apple', price: 12 };
product.price = 123;

console.log(product);
Задание 4

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

typescriptlet user = {name: 'john', admin: true};
user.admin = 'false';

console.log(user);