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

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

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

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

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

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

Пример:

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

Пример:

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

Пример:

`user.age = '30'; // ошибка`

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

`let date = {year: 2025, month: 12, day: 31}; date.month = '12'; console.log(date);`

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

`let product = {vendor_code: '123', name: 'apple', price: 12}; product.vendor_code = 123; console.log(product);`

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

`let product = {vendor_code: '123', name: 'apple', price: 12 }; product.price = 123; console.log(product);`

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

`let user = {name: 'john', admin: true}; user.admin = 'false'; console.log(user);`
← →
↑