Qual é a diferença entre interface e type no TypeScript e quando usar cada um?
Olá a todos! Comecei a estudar TypeScript recentemente e encontrei duas formas de descrever a estrutura de objetos: `interface` e `type`. No começo, pensei que fossem a mesma coisa, mas depois percebi que eles se comportam de maneira diferente em algumas situações.
Aqui está um exemplo. Posso escrever assim com `interface`:
```typescript
interface User {
name: string;
age: number;
}
```
Ou assim com `type`:
```typescript
type User = {
name: string;
age: number;
};
```
Ambas as opções funcionam da mesma forma quando crio um objeto:
```typescript
const user: User = { name: 'Alex', age: 30 };
```
Mas depois tentei combinar dois tipos. Com `interface`, posso simplesmente escrever uma segunda interface com o mesmo nome, e elas se fundem:
```typescript
interface User {
email: string;
}
// Agora User tem name, age e email
```
Já com `type`, recebi um erro: "Duplicate identifier 'User'". Então aprendi sobre `&` (intersection) para tipos, mas isso é outra sintaxe.
Também ouvi dizer que `type` pode fazer
No answers yet.
Faça login para deixar uma resposta
Blogs