Las interfaces pueden heredar de otras interfaces con extends:
Perro hereda nombre y edad de Animal, y añade raza y ladrar. No necesitas repetir las propiedades del padre.
Una interface puede heredar de varias interfaces a la vez:
Empleado tiene todas las propiedades de Persona + Contacto + las suyas propias. Composición limpia y reutilizable.
Con type, logras lo mismo usando el operador &:
& fusiona los tipos. El resultado tiene todas las propiedades de todos los tipos combinados.
Son casi equivalentes, pero tienen diferencias:
| extends | & | |
|---|---|---|
| Sintaxis | interface A extends B | type A = B & C |
| Conflictos | Da error claro | Crea tipo never silencioso |
| Legibilidad | Más clara para herencia | Más flexible |
Para herencia de objetos, extends suele dar mejores errores.
La clave es pensar en tipos pequeños y componerlos:
ConID y ConTimestamps son piezas reutilizables. Cualquier entidad que necesite un ID o timestamps puede heredarlos sin repetir código.
interface Persona definida con nombre y edadContacto con teléfono (string) y email (string)Empleado que extienda ambas y añada puesto (string) y salario (number)Extender interfaces es como construir con LEGO: piezas pequeñas que se combinan en estructuras complejas. Reutiliza, no repitas.