Контроль структуры объекта в TypeScript

TypeScript также контролирует структуру объекта. Пусть мы объявили наш объект с юзером:

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

В момент объявления TypeScript запоминает, что в нашем объекте есть ключи 'name' и 'age', а затем контролирует, чтобы в переменной хранился объект именно с этими ключами.

Попытка записать в переменную другой объект приводит к ошибке компиляции. Давайте попробуем. Запишем в переменную объект, в котором не хватает ключа:

user = {name: 'eric'}; // ошибка

Запишем в переменную новый объект с такими же ключами, но еще и с лишним ключом:

user = {name: 'eric', age: 40, salary: 300}; // ошибка

А теперь запишем в переменную объект, содержащий только ключи 'name' и 'age':

user = {name: 'eric', age: 40}; // работает

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

let date = {year: 2025, month: 12, day: 31}; date = {year: 2025, month: 12};

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

let date = {year: 2025, month: 12, day: 31}; date = {year: 2025, month: 12, date: 7};



Чат с GPT Компилятор