¿Se pueden extender (extends) los tipos en TypeScript, como las interfaces?
¡Hola a todos! Acabo de empezar a aprender TypeScript y me encontré con una confusión. Sé que las interfaces se pueden extender con `extends`. Por ejemplo:
```typescript
interface User {
name: string;
}
interface AdminUser extends User {
role: string;
}
```
Esto funciona perfectamente. Pero cuando intento hacer lo mismo con tipos (type alias), no funciona:
```typescript
type User = {
name: string;
};
type AdminUser extends User { // ❌ Error: 'extends' no funciona con tipos
role: string;
}
```
Probé diferentes opciones, pero TypeScript se queja. En internet dicen que los tipos se pueden extender usando intersecciones (&), pero no entiendo completamente cómo hacerlo correctamente y cuál es la diferencia entre interfaces y tipos en el contexto de extensión.
Por favor, indíquenme cómo extender tipos correctamente. ¿Se puede hacer esto? Y si es así, ¿cuándo es mejor usar `extends` para interfaces y cuándo intersecciones para tipos?
¡Gracias de antemano por la ayuda!