คุณสมบัติแบบอ่านอย่างเดียวในอินเทอร์เฟซใน TypeScript
คุณสมบัติแบบอ่านอย่างเดียวจะถูกกำหนดค่าเพียงครั้งเดียวตอนสร้างอ็อบเจกต์ หลังจากนั้นไม่สามารถเปลี่ยนแปลงได้ สำหรับการประกาศคุณสมบัติเหล่านี้ ใช้คำหลัก readonly
ลองใช้อินเทอร์เฟซ IFigure ที่สร้างขึ้นในบทเรียนก่อนหน้านี้ แต่ตอนนี้กำหนดให้คุณสมบัติ width สามารถเข้าถึงได้แบบอ่านอย่างเดียว:
interface IFigure {
height: number;
readonly width: number;
}
มาสร้างอ็อบเจกต์ rectangle กัน:
let rectangle: IFigure = {
height: 200,
width: 300
}
ลองเปลี่ยนความสูง:
rectangle.height = 150;
ตอนนี้ลองเปลี่ยนความกว้างและจะเห็นข้อผิดพลาด เนื่องจากความกว้างถูกประกาศไว้ว่าไม่สามารถเปลี่ยนแปลงได้:
rectangle.width = 400; // ข้อผิดพลาด
สร้างอินเทอร์เฟซ IUser โดยที่คุณสมบัติ salary จะสามารถเข้าถึงได้แบบอ่านอย่างเดียว