Funções genéricas: parâmetros de tipo
Adicione parâmetros de tipo às funções para reutilizá-las
Funções genéricas: parâmetros de tipo é 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
O problema resolvido pelos genéricos
// Without generics — loses type info
function first(arr: any[]): any { return arr[0]; }
// With generics — type-safe
function first<T>(arr: T[]): T { return arr[0]; }Sintaxe de parâmetros de tipo
function identity<T>(value: T): T {
return value;
}
const n = identity(42); // T is number
const s = identity('hello'); // T is stringInferência de tipos para funções genéricas
function wrap<T>(val: T): T[] { return [val]; }
const nums = wrap(42); // T inferred as number -> number[]
const strs = wrap('hi'); // T inferred as string -> string[]Vários parâmetros de tipo
function pair<A, B>(a: A, b: B): [A, B] {
return [a, b];
}
const p = pair(1, 'hello'); // [number, string]Funções genéricas para matrizes
function filterNull<T>(arr: (T | null)[]): T[] {
return arr.filter((x): x is T => x !== null);
}Argumentos de tipo explícitos
function create<T>(): T | null { return null; }
const user = create<User>(); // T cannot be inferred — must be explicitGenérico versus any
function echo<T>(val: T): T { return val; }
const n: number = echo(42); // OK
// const s: string = echo(42); // Error — T is numberFunções de seta genéricas
const identity = <T>(val: T): T => val;
// In .tsx files:
const identity2 = <T,>(val: T): T => val;Retornando um tipo diferente
function mapArray<T, U>(arr: T[], fn: (item: T) => U): U[] {
return arr.map(fn);
}
const lengths = mapArray(['hello', 'world'], s => s.length);
// lengths: number[]Parâmetros genéricos com valores padrão
function createList<T = string>(): T[] { return []; }
const list = createList(); // T defaults to stringVerificação rápida
Recapitulação
Perguntas Frequentes
A aula “Funções genéricas: parâmetros de tipo” é grátis?
Sim — o texto completo de “Funções genéricas: parâmetros de tipo” é 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 “Funções genéricas: parâmetros de tipo”?
Adicione parâmetros de tipo às funções para reutilizá-las 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 “Funções genéricas: parâmetros de tipo”?
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: parâmetros de tipo
- Interfaces genéricas e aliases de tipos
- Restrições genéricas com extends
- Parâmetros de tipo padrão