คุณสมบัติทางเลือกของอินเทอร์เฟซใน TypeScript

ในอินเทอร์เฟซยังสามารถกำหนดคุณสมบัติพิเศษ ทางเลือก (ไม่บังคับ) ได้ สิ่งเหล่านี้จำเป็นเพื่อไม่ให้จำกัด ออบเจ็กต์ด้วยชุดคุณสมบัติที่แน่นอน ในขณะที่ ไม่อนุญาตให้ใช้คุณสมบัติ ที่ไม่อยู่ในอินเทอร์เฟซ คุณสมบัติทางเลือก ถูกกำหนดโดยใช้โอเปอเรเตอร์ ? ที่ระบุหลังชื่อคุณสมบัติ

มาสร้างอินเทอร์เฟซ IFigure ที่กำหนดคุณสมบัติให้กับออบเจ็กต์รูปทรงทั้งหมด ให้ color เป็นคุณสมบัติ ทางเลือก:

typescriptinterface IFigure {
  height: number;
  width: number;
  color?: string;
}

ตอนนี้มาสร้างออบเจ็กต์ rectangle และ แสดงค่าสีของมันในคอนโซล:

typescriptlet rectangle: IFigure = {
  height: 200,
  width: 300,
  color: 'red'
}

console.log(rectangle.color); // 'red'

และตอนนี้มาตรวจสอบว่าจะมีข้อผิดพลาดหรือไม่ หาก ไม่กำหนดสีในออบเจ็กต์:

typescriptlet rectangle: IFigure = {
  height: 200,
  width: 300
}

console.log(rectangle.color);

จะไม่มีข้อผิดพลาด และในคอนโซลจะแสดง ข้อความเกี่ยวกับที่สีไม่ได้ กำหนดไว้:

typescriptundefined
Задание 1

สร้างอินเทอร์เฟซ IDate สำหรับออบเจ็กต์ ที่เก็บวันที่: ปี เดือน และวัน ให้ คุณสมบัติทั้งหมดของออบเจ็กต์เป็นทางเลือก