0Pricing
TypeScript Academy · Aula

Definindo formatos de objetos com interfaces

Utilize interface para descrever a estrutura de um objeto

Definindo formatos de objetos com interfaces é uma aula grátis de TypeScript Academy no CoddyKit. Esta é a aula 1 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 descrevem a estrutura dos objetos no TypeScript. Elas definem quais propriedades existem, seus tipos e se são opcionais ou somente leitura.

Interface básica

Defina uma interface com a palavra-chave `interface`, seguida pelos nomes das propriedades e seus tipos.
interface User {
  id: number;
  name: string;
  email: string;
}
const alice: User = { id: 1, name: 'Alice', email: 'a@b.com' };

Propriedades opcionais com ?

Marque as propriedades como opcionais com `?`. Uma propriedade opcional pode estar presente ou ausente.
interface Config {
  host: string;
  port?: number;     // optional
  timeout?: number;  // optional
}

Propriedades somente leitura

As propriedades somente leitura podem ser definidas uma vez (na criação), mas não podem ser alteradas depois.
interface Point {
  readonly x: number;
  readonly y: number;
}
const p: Point = { x: 5, y: 10 };
// p.x = 0; // Error!

Assinaturas de métodos

As interfaces podem incluir assinaturas de métodos que descrevem a estrutura da função.
interface Animal {
  name: string;
  speak(): string;
  move(distance: number): void;
}

Assinaturas de índice

Use uma assinatura de índice quando o objeto tiver chaves dinâmicas de um tipo específico.
interface StringMap {
  [key: string]: string;
}
const headers: StringMap = {
  'content-type': 'application/json',
  'accept': 'text/html',
};

Tipagem estrutural

O TypeScript usa tipagem estrutural — um objeto satisfaz uma interface desde que tenha as propriedades obrigatórias, independentemente de como foi criado.
interface Named { name: string; }
function greet(obj: Named) { console.log(obj.name); }
greet({ name: 'Alice', age: 30 }); // Extra props OK when not a literal

Verificação de propriedades excedentes

O TypeScript informa um erro quando um literal de objeto tem propriedades extras que não estão na interface. Isso é a verificação de propriedades excedentes.
interface Config { host: string; }
// const c: Config = { host: 'localhost', extra: 1 }; // Error on literal
const obj = { host: 'localhost', extra: 1 };
const c: Config = obj; // OK — not a fresh literal

Interface para tipos de função

As interfaces podem descrever tipos chamáveis com uma assinatura de chamada.
interface Greeter {
  (name: string): string;
}
const greet: Greeter = name => 'Hello, ' + name;

Interfaces aninhadas

As propriedades podem referenciar outras interfaces para construir estruturas de objetos aninhadas.
interface Address { street: string; city: string; }
interface Person { name: string; address: Address; }
const p: Person = { name: 'Alice', address: { street: '1 Main', city: 'NY' } };

Interface versus instância de classe

As interfaces descrevem a estrutura pública de uma classe, mas são removidas em tempo de execução. A classe fornece a implementação.
interface Saveable { save(): Promise<void>; }
class UserService implements Saveable {
  async save() { /* ... */ }
}

Verificação rápida

O que acontece quando você atribui um literal de objeto com uma propriedade extra a um tipo de interface no TypeScript?

Recapitulação

As interfaces definem estruturas de objetos com propriedades tipadas, modificadores opcionais ou somente leitura, assinaturas de métodos e assinaturas de índice. O TypeScript usa tipagem estrutural — o que importa é a compatibilidade da estrutura, não as declarações.

Perguntas Frequentes

A aula “Definindo formatos de objetos com interfaces” é grátis?

Sim — o texto completo de “Definindo formatos de objetos com 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 “Definindo formatos de objetos com interfaces”?

Utilize interface para descrever a estrutura de um objeto 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 1 de 4.

Quanto tempo leva a aula “Definindo formatos de objetos com 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