Контроль структуры объекта в 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};