0Pricing
TypeScript Academy · Aula

Interfaces genéricas e aliases de tipos

Aplique genéricos a interfaces e tipos personalizados

Interfaces genéricas e aliases de tipos é 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.

Boas-vindas

Os genéricos não se limitam a funções. As interfaces e os aliases de tipo também aceitam parâmetros de tipo, o que os torna reutilizáveis com muitos tipos.

Sintaxe de interface genérica

Adicione `` depois do nome da interface para torná-la genérica. Use T nos tipos de propriedades e nas assinaturas de métodos.
interface Box<T> {
  value: T;
  unwrap(): T;
}
const box: Box<number> = { value: 42, unwrap() { return this.value; } };

Alias de tipo genérico

Os aliases de tipo usam a mesma sintaxe ``.
type Maybe<T> = T | null | undefined;
type Pair<A, B> = { first: A; second: B };
const p: Pair<string, number> = { first: 'Alice', second: 30 };

Interface genérica de repositório

Um caso de uso clássico: uma interface genérica de repositório que funciona com qualquer tipo de entidade.
interface Repository<T> {
  findById(id: number): T | null;
  findAll(): T[];
  save(item: T): void;
  delete(id: number): void;
}

Implementando uma interface genérica

Forneça o argumento de tipo ao implementar uma interface genérica.
class UserRepo implements Repository<User> {
  findById(id: number): User | null { return null; }
  findAll(): User[] { return []; }
  save(user: User): void {}
  delete(id: number): void {}
}

Estendendo interfaces genéricas

As interfaces genéricas podem estender outras interfaces genéricas.
interface Named<T> { name: T; }
interface NamedAndAged<T> extends Named<T> { age: number; }

Tipo genérico de resposta

Um tipo genérico de resposta de API que envolve qualquer carga de dados.
type ApiResponse<T> = {
  status: 'success' | 'error';
  data: T;
  timestamp: number;
};
const res: ApiResponse<User[]> = { status: 'success', data: [], timestamp: Date.now() };

Vários parâmetros de tipo em interfaces

As interfaces aceitam vários parâmetros de tipo.
interface KeyValue<K, V> {
  key: K;
  value: V;
}
const kv: KeyValue<string, number> = { key: 'age', value: 30 };

Método genérico em uma interface não genérica

Uma interface pode ter métodos genéricos sem tornar toda a interface genérica.
interface Transformer {
  transform<T, U>(input: T, fn: (val: T) => U): U;
}

Tipos genéricos recursivos

Os tipos genéricos podem referenciar a si mesmos para estruturas de árvore ou de lista encadeada.
interface TreeNode<T> {
  value: T;
  children: TreeNode<T>[];
}

Alias de tipo versus interface para genéricos

Ambos oferecem o mesmo suporte a genéricos. Prefira interface para contratos implementados por classes. Prefira type para genéricos que envolvem uniões, como Maybe.

Verificação rápida

O que você fornece ao implementar `interface Repository`?

Recapitulação

As interfaces genéricas e os aliases de tipo usam para funcionar com qualquer tipo. Eles permitem criar contratos reutilizáveis para repositórios, estruturas que envolvem respostas e estruturas de dados recursivas. Implemente-os fornecendo o argumento de tipo concreto.

Perguntas Frequentes

A aula “Interfaces genéricas e aliases de tipos” é grátis?

Sim — o texto completo de “Interfaces genéricas e aliases de tipos” é 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 “Interfaces genéricas e aliases de tipos”?

Aplique genéricos a interfaces e tipos personalizados 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 “Interfaces genéricas e aliases de tipos”?

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. Funções genéricas: parâmetros de tipo
  2. Interfaces genéricas e aliases de tipos
  3. Restrições genéricas com extends
  4. Parâmetros de tipo padrão
← Voltar para TypeScript Academy