Cómo obtener los tipos de argumentos de una función en TypeScript (Parameters, infer y tipos condicionales)
¡Hola a todos! He estado escribiendo en TypeScript recientemente y me encontré con un problema que me dejó perplejo.
Tengo varias funciones que aceptan diferentes parámetros. Por ejemplo:
```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 {
// ...
}
```
Quiero escribir un wrapper universal que acepte cualquier función y sus argumentos, realice algún preprocesamiento (por ejemplo, logging) y luego llame a la función original. El problema es que no sé cómo obtener dinámicamente los tipos de argumentos de la función pasada.
Esto es lo que he intentado:
```typescript
function wrapFunction any>(fn: T, ...args: any[]) {
console.log('Calling function with args:', args);
return fn(...args);
}
```
Esto funciona, pero se pierde la tipificación — `args` tiene tipo
No answers yet.
Inicia sesión para dejar una respuesta