Interface: interface Child extends Parent { ... } và extends nhiều: extends A, B.
- Type: type Combined = A & B (intersection).
- Interface có thể extend type và ngược lại.
typescript
interface Animal { name: string }
interface Pet extends Animal { owner: string }
interface Named { label: string }
interface RegisteredPet extends Pet, Named { id: number } // đa extends
// Type intersection tương đương:
type Combined = Pet & Named & { id: number };extends kiểm tra compatibility (không thể re-declare incompatible property), còn & intersection merge tất cả.
Interface: interface Child extends Parent { ... } and multiple extends: extends A, B.
- Type:
type Combined = A & B(intersection). - An interface can extend a type and vice versa.
typescript
interface Animal { name: string }
interface Pet extends Animal { owner: string }
interface Named { label: string }
interface RegisteredPet extends Pet, Named { id: number } // multi-extends
// Type intersection equivalent:
type Combined = Pet & Named & { id: number };extends checks compatibility (you cannot re-declare an incompatible property), while & intersection merges everything.