Avatar ·

¿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