// lets say we have some function typetypeSomeF=(a:number,b:string)=>number// and we have our utility typetypeAppendArgument<Fextends(...args:any[])=>any,A>=(x:A,...args:Parameters<F>)=>ReturnType<F>typeFinalF=AppendArgument<SomeF,boolean>// FinalF should be (x: boolean, a: number, b: string) => number
Playground Link
You should keep the arguments' order, so x must after a and b.