ชนิดโครงสร้างที่ถูกลบ
ใน TypeScript ออบเจ็กต์ไม่จำเป็นต้องตรงกับชนิดใดชนิดหนึ่งอย่างเคร่งครัด ตัวอย่างเช่น หากเราสร้างออบเจ็กต์ที่เป็นไปตามข้อกำหนดของอินเทอร์เฟซ เราสามารถใช้ออบเจ็กต์นั้นในตำแหน่งที่ต้องการอินเทอร์เฟซดังกล่าวได้ แม้จะไม่มีการเชื่อมโยงระหว่างกันอย่างชัดเจน ตัวอย่าง:
type NameProp1 = { prop1: string;};
function log(x: NameProp1) { console.log(x.prop1);}
const obj = { prop2: 123, prop1: 'Origin',};
log(obj); // Valid