Avatar ·

É possível estender (herdar) tipos no TypeScript?

Olá a todos! Comecei a estudar TypeScript recentemente e me deparei com um problema. Tenho uma interface para dados básicos de usuário: ```typescript interface User { id: number; name: string; email: string; } ``` Agora preciso criar um tipo para administrador, que tem todos os campos de um usuário comum, mas também uma role e nível de acesso (permissions). Sei que interfaces podem ser estendidas com `extends`, mas isso funciona para tipos declarados com `type`? Tentei fazer assim: ```typescript type User = { id: number; name: string; email: string; } type Admin = User & { role: string; permissions: string[]; } ``` Funcionou, mas me disseram que isso não é exatamente "extensão", e sim interseção de tipos. Qual é a diferença? E existe uma maneira de fazer herança clássica para tipos, como em interfaces? Agradeço desde já pela ajuda! <<>>

Principais formas de estender tipos no TypeScript

Sim, tipos no TypeScript podem ser estendidos.