0Pricing
TypeScript Academy · Aula

Extensão e mesclagem de interfaces

Estenda interfaces e entenda a mesclagem de declarações

Extensão e mesclagem de interfaces é uma aula grátis de TypeScript Academy no CoddyKit. Esta é a aula 3 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.

Boas-vindas

As interfaces podem estender outras interfaces para desenvolver estruturas existentes, e o TypeScript combina automaticamente várias declarações da mesma interface.

Estendendo uma interface

Utilize a palavra-chave `extends` para criar uma nova interface que inclua todas as propriedades da interface pai.
interface Animal { name: string; }
interface Dog extends Animal {
  breed: string;
}
const rex: Dog = { name: 'Rex', breed: 'Labrador' };

Estendendo várias interfaces

Uma interface pode estender várias interfaces de uma só vez, combinando todas as suas propriedades.
interface Flyable { fly(): void; }
interface Swimmable { swim(): void; }
interface Duck extends Flyable, Swimmable {
  quack(): void;
}

Substituindo propriedades ao estender

Uma interface estendida pode substituir uma propriedade da interface pai, mas o novo tipo deve poder ser atribuído ao tipo pai.
interface Base { value: string | number; }
interface Derived extends Base { value: string; } // OK — string is narrower
// interface Bad extends Base { value: boolean; } // Error

Fusão de declarações

Quando você declara duas interfaces com o mesmo nome, o TypeScript as combina em uma única interface com todas as propriedades.
interface Window { title: string; }
interface Window { location: Location; }
// Merged: Window has both title and location

Ampliando tipos de bibliotecas

A fusão de declarações é usada para estender tipos de terceiros. Por exemplo, adicione propriedades à interface Request do Express.
// express.d.ts
declare namespace Express {
  interface Request {
    user?: User;
  }
}

Interface estendendo um alias de tipo

Uma interface pode estender um alias de tipo desde que o alias seja um tipo de objeto.
type Named = { name: string };
interface User extends Named { email: string; }

Cadeias de extensão aninhadas

As cadeias de extensão podem ter vários níveis de profundidade.
interface A { a: number; }
interface B extends A { b: number; }
interface C extends B { c: number; }
const obj: C = { a: 1, b: 2, c: 3 };

Extensão versus implementação

`extends` é usado para herança entre interfaces ou entre classes. `implements` é usado para que uma classe cumpra um contrato de interface.
interface Serializable { serialize(): string; }
class Model implements Serializable {
  serialize() { return JSON.stringify(this); }
}

A fusão se aplica a todos os usos

Quando as interfaces são combinadas, todo o código existente que usa essa interface recebe automaticamente as novas propriedades, e é por isso que a ampliação de bibliotecas funciona.

Fusão versus extensão: quando usar cada uma

Utilize `extends` para criar uma nova interface com base em uma interface existente. Utilize a fusão (mesmo nome) para adicionar elementos a uma interface a partir de um arquivo separado, como em uma ampliação.

Verificação rápida

Qual recurso do TypeScript permite adicionar propriedades a uma interface de uma biblioteca de terceiros?

Recapitulação

As interfaces estendem outras interfaces com `extends`, combinando suas estruturas. A fusão de declarações combina automaticamente interfaces com o mesmo nome. Isso permite ampliar bibliotecas sem modificar código de terceiros.

Perguntas Frequentes

A aula “Extensão e mesclagem de interfaces” é grátis?

Sim — o texto completo de “Extensão e mesclagem de 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 “Extensão e mesclagem de interfaces”?

Estenda interfaces e entenda a mesclagem de declarações 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 3 de 4.

Quanto tempo leva a aula “Extensão e mesclagem de 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. Definindo formatos de objetos com interfaces
  2. Aliases de tipos para tipos complexos
  3. Extensão e mesclagem de interfaces
  4. Interface versus type: quando utilizar cada um
← Voltar para TypeScript Academy