¿Cuál es la diferencia entre interface y type en TypeScript y cuándo usar cada uno?
¡Hola a todos! Acabo de empezar a aprender TypeScript y me encontré con dos formas de describir la estructura de objetos: `interface` y `type`. Al principio pensé que eran lo mismo, pero luego noté que se comportan de manera diferente en algunas situaciones.
Aquí hay un ejemplo. Puedo escribir así con `interface`:
```typescript
interface User {
name: string;
age: number;
}
```
O así con `type`:
```typescript
type User = {
name: string;
age: number;
};
```
Ambas opciones funcionan igual cuando creo un objeto:
```typescript
const user: User = { name: 'Alex', age: 30 };
```
Pero luego intenté combinar dos tipos. Con `interface` puedo simplemente escribir una segunda interface con el mismo nombre, y se fusionan:
```typescript
interface User {
email: string;
}
// Ahora User tiene name, age y email
```
Mientras que con `type` obtuve un error: "Duplicate identifier 'User'". Entonces aprendí sobre `&` (intersection) para tipos, pero esa ya es otra sintaxis.
También he oído que `type` puede hacer