TypeScriptにおけるオブジェクト構造の制御

TypeScriptはオブジェクトの構造も制御します。 ユーザーオブジェクトを次のように宣言したとしましょう:

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

宣言時、TypeScriptはオブジェクトにキー'name' と'age'があることを記憶し、 その後、変数にこれらのキーを持つオブジェクトが 確実に格納されるように制御します。

変数に別のオブジェクトを代入しようとすると、 コンパイルエラーが発生します。 試してみましょう。キーが不足しているオブジェクトを 変数に代入します:

typescriptuser = {name: 'eric'}; // エラー

同じキーを持ち、さらに余分なキーも含む 新しいオブジェクトを変数に代入します:

typescriptuser = {name: 'eric', age: 40, salary: 300}; // エラー

次に、キー'name'と'age'のみを 含むオブジェクトを変数に代入します:

typescriptuser = {name: 'eric', age: 40}; // 動作する
Задание 1

コードを実行せずに、コードの実行結果が どうなるか判断してください:

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

コードを実行せずに、コードの実行結果が どうなるか判断してください:

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