Como obter os tipos de argumentos de uma função em TypeScript (Parameters, infer e tipos condicionais)
Olá a todos! Estou escrevendo em TypeScript recentemente e me deparei com uma tarefa que me deixou perplexo.
Tenho várias funções que aceitam parâmetros diferentes. Por exemplo:
```typescript
function fetchUser(id: number, name: string): void {
// ...
}
function updateSettings(theme: 'light' | 'dark', fontSize: number): void {
// ...
}
function logError(error: Error, source: string, timestamp: number): void {
// ...
}
```
Quero escrever um wrapper genérico que aceite qualquer função e seus argumentos, faça algum pré-processamento (por exemplo, logging) e então chame a função original. O problema é que não sei como obter dinamicamente os tipos dos argumentos da função passada.
Aqui está o que tentei:
```typescript
function wrapFunction any>(fn: T, ...args: any[]) {
console.log('Calling function with args:', args);
return fn(...args);
}
```
Isso funciona, mas perde a tipagem — `args` tem o tipo
No answers yet.
Faça login para deixar uma resposta