Optional Properties
โดยปกติแล้วเมื่อเรากำหนด Interface หรือ Type (แบบ Object) แล้ว เมื่อนำไปใช้สร้าง Object ใดๆ ทุก Property จะเป็นแบบ Required คือต้องมีค่านั้นอยู่เสมอ เพื่อการันตีว่า Type จะเป็นตามที่กำหนดไว้เสมอ เช่น
โค้ดนี้ถ้า Compile เป็น JavaScript ปกติก็จะยังใช้ได้ แต่ถ้าเราเรียก b.email
จะได้ undefined
แปลว่าโค้ดนี้จะไม่มีความ Type-safe แล้ว
ถ้าหากเราต้องการทำให้ Property ไม่เป็นแบบ Required ยกตัวอย่างเช่น การสร้าง User Account ใหม่ ไม่จำเป็นต้องกรอกเบอร์โทรศัพท์เสมอไป จะทำได้สองวิธี แบบแรกคือใช้ Union |
กับ null
แต่วิธีนี้จะมีปัญหาว่า เรายังคงต้องกำหนดให้ phone
เป็น null
อยู่ดี
อีกวิธีหนึ่งคือเราต้องการให้ละ Property ไปเลย จะต้องใช้การกำหนดว่าเป็น Optional โดยใช้ตัว ?
ด้านหลังชื่อ Property ดังนี้
โดยค่าของ phone
จะเป็น Type ที่เรากำหนดให้ มา Union กับ undefined
Last updated