Skip to content

ชนิดโครงสร้างที่ถูกลบ

ใน TypeScript ออบเจ็กต์ไม่จำเป็นต้องตรงกับชนิดใดชนิดหนึ่งอย่างเคร่งครัด ตัวอย่างเช่น หากเราสร้างออบเจ็กต์ที่เป็นไปตามข้อกำหนดของอินเทอร์เฟซ เราสามารถใช้ออบเจ็กต์นั้นในตำแหน่งที่ต้องการอินเทอร์เฟซดังกล่าวได้ แม้จะไม่มีการเชื่อมโยงระหว่างกันอย่างชัดเจน ตัวอย่าง:

type NameProp1 = {
prop1: string;
};
function log(x: NameProp1) {
console.log(x.prop1);
}
const obj = {
prop2: 123,
prop1: 'Origin',
};
log(obj); // Valid