0Pricing
TypeScript Academy · Aula

Funções genéricas e restrições (extends, parâmetros padrão)

Crie funções genéricas, adicione restrições com extends e use parâmetros de tipo padrão para APIs mais práticas.

Funções genéricas e restrições (extends, parâmetros padrão) é uma aula grátis de TypeScript Academy no CoddyKit. Esta é a aula 1 de 3. 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 3 aulas no total.

Introdução

Objetivo: tornar as funções reutilizáveis e seguras quanto aos tipos com genéricos. Você definirá parâmetros de tipo, adicionará restrições com extends e configurará parâmetros de tipo padrão para obter um DX melhor.

Genérico identidade

Defina um parâmetro de tipo <T>. O compilador infere T a partir dos argumentos, portanto os chamadores raramente precisam anotá-lo.

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

const a = identity(42);    // T inferred as number
const b = identity("ts"); // T inferred as string
console.log(a, b);

Restrição com extends

Use extends para exigir uma estrutura, como um id. T pode incluir mais campos graças à tipagem estrutural.

function getId<T extends { id: number }>(item: T): number {
  return item.id;
}

getId({ id: 1, name: "Ada" }); // OK (has id)
// getId({ name: "Lin" });    // Error: missing id

Restrição com keyof

Restrinja K com keyof T para permitir somente nomes de propriedades de T. O tipo de retorno é o tipo da propriedade, T[K].

function pluck<T, K extends keyof T>(obj: T, key: K): T[K] {
  return obj[key];
}

const user = { id: 7, name: "Neo" };
const v1 = pluck(user, "name"); // string
const v2 = pluck(user, "id");   // number
console.log(v1, v2);

Parâmetros de tipo padrão

Parâmetros de tipo padrão reduzem o código repetitivo. Os chamadores podem omitir <T> nos casos comuns, mas ainda substituí-lo quando necessário.

interface Box<T = string> {
  value: T;
}

const aBox: Box = { value: "hi" };       // T defaults to string
const nBox: Box<number> = { value: 123 }; // explicit override
console.log(aBox.value, nBox.value);

Dicas

Dicas:

  • Deixe a inferência fazer o trabalho; evite anotações redundantes de T.
  • Adicione extends somente quando a implementação precisar dos membros de T.
  • Forneça valores padrão para casos comuns e práticos.

Verificação de restrição

Verificação rápida: o que T extends { id: number } garante?

Recapitulação

Recapitulação: defina funções genéricas, imponha restrições com extends e configure parâmetros de tipo padrão para manter as APIs flexíveis e fáceis de usar.

Perguntas Frequentes

A aula “Funções genéricas e restrições (extends, parâmetros padrão)” é grátis?

Sim — o texto completo de “Funções genéricas e restrições (extends, parâmetros padrão)” é 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 3 aulas no total.

O que vou aprender em “Funções genéricas e restrições (extends, parâmetros padrão)”?

Crie funções genéricas, adicione restrições com extends e use parâmetros de tipo padrão para APIs mais práticas. 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 3.

Quanto tempo leva a aula “Funções genéricas e restrições (extends, parâmetros padrão)”?

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 e restrições (extends, parâmetros padrão)
  2. Partial, Readonly, Record, Pick, Omit
  3. Tipos keyof/de acesso indexado (introdução)
← Voltar para TypeScript Academy