Aliases de tipos e interfaces
Compare e use aliases de tipos e interfaces
Aliases de tipos e interfaces é uma aula grátis de TypeScript Academy no CoddyKit. Esta é a aula 2 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de TypeScript Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de TypeScript Academy inclui 4 aulas no total.
Apelidos de tipo versus interfaces
Apelidos de tipo e interfaces
Boas-vindas à próxima lição! Nesta lição, você aprenderá sobre apelidos de tipo e interfaces em TypeScript, incluindo suas diferenças, semelhanças e quando usar cada um. Vamos começar!

O que são apelidos de tipo?
O que são apelidos de tipo?
Um apelido de tipo permite definir um nome personalizado para um tipo. Ele pode representar tipos primitivos, objetos ou até mesmo assinaturas de funções.
Exemplo:
Tarefa: Crie um apelido de tipo para um objeto que represente um livro e use-o para definir uma variável.
type Point = {
x: number;
y: number;
};
let point: Point = { x: 10, y: 20 };
console.log(point);
// Output: { x: 10, y: 20 }
O que são interfaces?
O que são interfaces?
Uma interface define a estrutura de um objeto, incluindo suas propriedades e métodos. Ela é frequentemente usada para garantir a consistência e a segurança de tipos dos objetos.
Exemplo:
Tarefa: Crie uma interface para o perfil de um usuário e use-a para definir uma variável.
interface Point {
x: number;
y: number;
}
let point: Point = { x: 5, y: 15 };
console.log(point);
// Output: { x: 5, y: 15 }
Apelidos de tipo versus interfaces: semelhanças
Apelidos de tipo versus interfaces: semelhanças
Os apelidos de tipo e as interfaces compartilham alguns recursos:
- Ambos podem descrever a estrutura de um objeto.
- Ambos podem ser usados para definir tipos de função.
- Ambos permitem estender outros tipos.
Exemplo: Um tipo de função:
Tarefa: Defina um apelido de tipo e uma interface para uma função e use-os.
type Add = (a: number, b: number) => number;
interface Subtract {
(a: number, b: number): number;
}
let add: Add = (x, y) => x + y;
let subtract: Subtract = (x, y) => x - y;
console.log(add(5, 3));
// Output: 8
console.log(subtract(5, 3));
// Output: 2
Apelidos de tipo versus interfaces: diferenças
Apelidos de tipo versus interfaces: diferenças
Aqui estão as principais diferenças:
- Interfaces: Podem ser combinadas (fusão de declarações).
- Apelidos de tipo: Não podem ser combinados.
- Apelidos de tipo: Podem definir tipos união e interseção.
- Interfaces: São projetadas principalmente para estruturas de objetos.
Exemplo: Tipos união com apelidos de tipo:
Tarefa: Use um apelido de tipo para definir um tipo união e atribua valores diferentes a uma variável.
type StringOrNumber = string | number;
let value: StringOrNumber = "Hello";
value = 42;
// value = true;
// Error: Type 'true' is not assignable to type 'StringOrNumber'.
Estendendo tipos e interfaces
Estendendo tipos e interfaces
Tanto os apelidos de tipo quanto as interfaces podem estender outros tipos:
- Interfaces: Use a palavra-chave
extends. - Apelidos de tipo: Use interseções (
&).
Exemplo:
Tarefa: Estenda um apelido de tipo e uma interface para criar novos tipos.
interface Animal {
name: string;
}
interface Dog extends Animal {
breed: string;
}
type Bird = Animal & { canFly: boolean };
let myDog: Dog = { name: "Buddy", breed: "Golden Retriever" };
let myBird: Bird = { name: "Parrot", canFly: true };
console.log(myDog, myBird);
Fusão de declarações
Fusão de declarações
As interfaces permitem a fusão de declarações, na qual várias declarações de interface com o mesmo nome são combinadas em uma só. Os apelidos de tipo não permitem esse recurso.
Exemplo:
Tarefa: Crie duas declarações de interface com o mesmo nome e teste a fusão de declarações.
interface Person {
name: string;
}
interface Person {
age: number;
}
let person: Person = { name: "Alice", age: 30 };
console.log(person);
// Output: { name: "Alice", age: 30 }
Quando usar cada um
Quando usar cada um
Aqui estão algumas orientações:
- Use interfaces para definir estruturas de objetos e quando for necessária a fusão de declarações.
- Use apelidos de tipo para uniões, interseções ou ao definir tipos de função.
Dica: Use aquele que melhor se adapta ao seu caso de uso, buscando clareza e consistência!
Muito bem!
Muito bem!
Parabéns! Você aprendeu as semelhanças e diferenças entre apelidos de tipo e interfaces em TypeScript, além de quando usar cada um. Na próxima lição, exploraremos recursos avançados do TypeScript, como tipos condicionais. Vamos continuar programando!

Perguntas Frequentes
A aula “Aliases de tipos e interfaces” é grátis?
Sim — o texto completo de “Aliases de tipos e interfaces” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de TypeScript Academy, atualize para CoddyKit PRO. O curso de TypeScript Academy inclui 4 aulas no total.
O que vou aprender em “Aliases de tipos e interfaces”?
Compare e use aliases de tipos e interfaces Você pratica TypeScript Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar TypeScript Academy?
Nenhuma experiência prévia é necessária. TypeScript Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 2 de 4.
Quanto tempo leva a aula “Aliases de tipos e interfaces”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de TypeScript Academy?
Sim. Cada aula de TypeScript Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Genéricos
- Aliases de tipos e interfaces
- Tipos utilitários
- Proteções de tipos