คุณสมบัติที่ไม่จำเป็นของอ็อบเจกต์ใน TypeScript

เมื่อประกาศอ็อบเจกต์ คุณสามารถระบุคุณสมบัติบางส่วน เป็นแบบไม่จำเป็นได้ ในการนี้ หลังจาก ชื่อคุณสมบัติ คุณต้องระบุเครื่องหมายคำถาม

ตัวอย่างเช่น ลองทำให้คุณสมบัติ 'age' ในอ็อบเจกต์ผู้ใช้เป็นแบบไม่จำเป็น

typescriptlet user: {name: string, age?: number};

ตอนนี้เราสามารถกำหนดอ็อบเจกต์ที่มีเพียงคุณสมบัติ 'name' ลงในตัวแปรได้

typescriptuser = {name: 'john'};

หรือเราสามารถกำหนดอ็อบเจกต์ที่มีทั้งคุณสมบัติ 'name' และคุณสมบัติ 'age'

typescriptuser = {name: 'john', age: 30};
Задание 1

โดยไม่ต้องรันโค้ด จงหาว่าผลลัพธ์ของการทำงานของโค้ดจะเป็นอย่างไร

typescriptlet date = {year: number, month: number, day?: number};
date = {year: 2025, month: 12};