Avatar ·

É possível estender tipos em TypeScript, como interfaces?

Olá a todos! Comecei a estudar TypeScript recentemente e me deparei com uma dúvida. Eu sei que interfaces podem ser estendidas com `extends`. Por exemplo: ```typescript interface User { name: string; } interface AdminUser extends User { role: string; } ``` Isso funciona perfeitamente. Mas quando tento fazer o mesmo com tipos (type alias), não consigo: ```typescript type User = { name: string; }; type AdminUser extends User { // ❌ Erro: 'extends' não funciona com tipos role: string; } ``` Tentei várias alternativas, mas o TypeScript reclama. Na internet dizem que tipos podem ser estendidos com interseções (&), mas não entendo completamente como fazer isso corretamente e qual a diferença entre interfaces e tipos no contexto de extensão. Por favor, me expliquem como estender tipos corretamente? É possível fazer isso? E se sim, quando é melhor usar `extends` para interfaces e quando usar interseções para tipos? Desde já, agradeço pela ajuda!