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 idRestriçã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
- Funções genéricas e restrições (extends, parâmetros padrão)
- Partial, Readonly, Record, Pick, Omit
- Tipos keyof/de acesso indexado (introdução)