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
Interface básica
interface User {
id: number;
name: string;
email: string;
}
const alice: User = { id: 1, name: 'Alice', email: 'a@b.com' };Propriedades opcionais com ?
interface Config {
host: string;
port?: number; // optional
timeout?: number; // optional
}Propriedades somente leitura
interface Point {
readonly x: number;
readonly y: number;
}
const p: Point = { x: 5, y: 10 };
// p.x = 0; // Error!Assinaturas de métodos
interface Animal {
name: string;
speak(): string;
move(distance: number): void;
}Assinaturas de índice
interface StringMap {
[key: string]: string;
}
const headers: StringMap = {
'content-type': 'application/json',
'accept': 'text/html',
};Tipagem estrutural
interface Named { name: string; }
function greet(obj: Named) { console.log(obj.name); }
greet({ name: 'Alice', age: 30 }); // Extra props OK when not a literalVerificaçã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 literalInterface para tipos de função
interface Greeter {
(name: string): string;
}
const greet: Greeter = name => 'Hello, ' + name;Interfaces 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
interface Saveable { save(): Promise<void>; }
class UserService implements Saveable {
async save() { /* ... */ }
}Verificação rápida
Recapitulação
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
- Definindo formatos de objetos com interfaces
- Aliases de tipos para tipos complexos
- Extensão e mesclagem de interfaces
- Interface versus type: quando utilizar cada um