TypeScript-da obyekt strukturasi nazorati

TypeScript shuningdek obyekt strukturasi ustidan nazoratni amalga oshiradi. Faraz qilaylik, biz foydalanuvchi obyektimizni quyidagicha e'lon qildik:

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

E'lon qilish paytida TypeScript eslab qoladi, obyektimizda 'name' va 'age' kalitlari mavjudligini, so‘ngra o‘zgaruvchida anavi kalitlarga ega bo‘lgan obyekt saqlanishini nazorat qiladi.

O‘zgaruvchiga boshqa obyekt yozishga urinish kompilyatsiya xatosiga olib keladi. Keling, sinab ko‘raylik. O‘zgaruvchiga yetishmayotgan kalitga ega obyekt yozamiz:

typescriptuser = {name: 'eric'}; // xato

O‘zgaruvchiga bir xil kalitlarga, lekin qo‘shimcha kalitga ega yangi obyekt yozamiz:

typescriptuser = {name: 'eric', age: 40, salary: 300}; // xato

Endi esa o‘zgaruvchiga faqat 'name' va 'age' kalitlarini o‘z ichiga olgan obyekt yozamiz:

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

Kodni ishlamasdan, quyidagi kodni bajarish natijasi qanday bo‘lishini aniqlang:

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

Kodni ishlamasdan, quyidagi kodni bajarish natijasi qanday bo‘lishini aniqlang:

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