0Pricing
TypeScript Academy · Aula

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!

Aliases de tipos e interfaces — ilustração 1

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!

Aliases de tipos e interfaces — ilustração 10

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

  1. Genéricos
  2. Aliases de tipos e interfaces
  3. Tipos utilitários
  4. Proteções de tipos
← Voltar para TypeScript Academy