Kontrola struktury obiektu w TypeScript

TypeScript również kontroluje strukturę obiektu. Załóżmy, że zadeklarowaliśmy nasz obiekt użytkownika:

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

W momencie deklaracji TypeScript zapamiętuje, że w naszym obiekcie są klucze 'name' i 'age', a następnie kontroluje, aby w zmiennej przechowywany był obiekt właśnie z tymi kluczami.

Próba zapisania do zmiennej innego obiektu prowadzi do błędu kompilacji. Spróbujmy. Zapiszmy do zmiennej obiekt, w którym brakuje klucza:

typescriptuser = {name: 'eric'}; // błąd

Zapiszmy do zmiennej nowy obiekt z takimi samymi kluczami, ale jeszcze i z dodatkowym kluczem:

typescriptuser = {name: 'eric', age: 40, salary: 300}; // błąd

A teraz zapiszmy do zmiennej obiekt, zawierający tylko klucze 'name' i 'age':

typescriptuser = {name: 'eric', age: 40}; // działa
Задание 1

Bez uruchamiania kodu określ jaki będzie wynik wykonania kodu:

typescriptlet date = {year: 2025, month: 12, day: 31};
date = {year: 2025, month: 12};
Задание 2

Bez uruchamiania kodu określ jaki będzie wynik wykonania kodu:

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