É 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.