การควบคุมโครงสร้างออบเจ็กต์ใน TypeScript
TypeScript ยังควบคุมโครงสร้างของออบเจ็กต์อีกด้วย สมมติว่าเราประกาศออบเจ็กต์ user ของเรา:
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};