In the example code below the arrow function has correct type inference while the function example is unable to infer the parameter type and falls back to any.
declarefunctionmonitor<Textends(...args: any)=>any>(extractor: (...args: Parameters<T>)=>Record<string,unknown>,executor: T,): (...args: Parameters<T>)=>ReturnType<T>;monitor((p)=>({ p }),(p: number)=>p);monitor((p)=>({ p }),function(p: number){returnp;});

In the example code below the arrow function has correct type inference while the function example is unable to infer the parameter type and falls back to
any.