0Pricing
TypeScript Academy · Aula

Genéricos

Aprenda a criar componentes reutilizáveis usando genéricos

Genéricos é 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.

Introdução aos genéricos

Genéricos

Boas-vindas à próxima lição! Nesta lição, você aprenderá sobre genéricos, um recurso poderoso do TypeScript que permite criar componentes reutilizáveis e seguros quanto aos tipos. Vamos começar!

Genéricos — ilustração 1

O que são genéricos?

O que são genéricos?

Os genéricos permitem escrever código reutilizável que funciona com qualquer tipo. Eles atuam como espaços reservados para tipos que você pode especificar ao usá-los.

Exemplo: Uma função genérica:

Tarefa: Escreva uma função genérica que receba um argumento e o retorne sem alterações.

function identity<T>(value: T): T {
  return value;
}

console.log(identity<string>("Hello")); 
// Output: Hello
console.log(identity<number>(42)); 
// Output: 42

Por que usar genéricos?

Por que usar genéricos?

Os genéricos ajudam você a:

  • Escrever código reutilizável: Funções e classes podem trabalhar com diferentes tipos.
  • Garantir a segurança de tipos: Você pode impor tipos específicos sem abrir mão da flexibilidade.
  • Reduzir a redundância: Evite escrever versões separadas da mesma função ou classe para diferentes tipos.

Dica: Use genéricos para escrever código mais flexível e fácil de manter.

Funções genéricas

Funções genéricas

Você pode usar genéricos para criar funções flexíveis. Exemplo:

Tarefa: Escreva uma função genérica que combine dois objetos e retorne o resultado.

function merge<T, U>(obj1: T, obj2: U): T & U {
  return { ...obj1, ...obj2 };
}

let merged = merge({ name: "Alice" }, { age: 25 });
console.log(merged); 
// Output: { name: "Alice", age: 25 }

Classes genéricas

Classes genéricas

Os genéricos podem ser usados em classes para torná-las reutilizáveis com diferentes tipos. Exemplo:

class Box<T> {
  private contents: T;

  constructor(contents: T) {
    this.contents = contents;
  }

  getContents(): T {
    return this.contents;
  }
}

let stringBox = new Box<string>("Hello");
console.log(stringBox.getContents()); 
// Output: Hello

let numberBox = new Box<number>(42);
console.log(numberBox.getContents()); 
// Output: 42

Interfaces genéricas

Interfaces genéricas

As interfaces também podem usar genéricos para impor uma estrutura a diferentes tipos. Exemplo:

Tarefa: Defina uma interface genérica e crie um objeto que a implemente.

interface Pair<T, U> {
  first: T;
  second: U;
}

let coordinates: Pair<number, number> = { first: 10, second: 20 };
console.log(coordinates); 
// Output: { first: 10, second: 20 }

Restrições de genéricos

Restrições de genéricos

Você pode adicionar restrições aos genéricos para garantir que eles funcionem apenas com tipos específicos. Exemplo:

function printLength<T extends { length: number }>(item: T): void {
  console.log(`Length: ${item.length}`);
}

printLength("Hello"); 
// Output: Length: 5
printLength([1, 2, 3]); 
// Output: Length: 3
// printLength(42); 
// Error: Argument of type 'number' is not assignable to parameter of type '{ length: number }'.

Valores padrão de genéricos

Valores padrão de genéricos

Você pode especificar tipos padrão para os genéricos quando nenhum tipo for fornecido. Exemplo:

Tarefa: Crie uma função genérica com um tipo padrão e teste-a com diferentes tipos.

function wrap<T = string>(value: T): T[] {
  return [value];
}

console.log(wrap("Hello")); // Output: ["Hello"]
console.log(wrap(42)); // Output: [42]

Muito bem!

Muito bem!

Parabéns! Você aprendeu a usar genéricos em TypeScript para criar funções, classes e interfaces reutilizáveis e seguras quanto aos tipos. Os genéricos são uma ferramenta poderosa para escrever código flexível e escalável. Na próxima lição, exploraremos tipos avançados, como tipos mapeados e condicionais. Vamos continuar programando!

Genéricos — ilustração 10

Perguntas Frequentes

A aula “Genéricos” é grátis?

Sim — o texto completo de “Genéricos” é 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 “Genéricos”?

Aprenda a criar componentes reutilizáveis usando genéricos 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 “Genéricos”?

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