For given function type F
, and any type A
(any in this context means we don't restrict the type, and I don't have in mind any
type 😉) create a generic type which will take F
as first argument, A
as second and will produce function type G
which will be the same as F
but with appended argument A
as a first one.
// lets say we have some function type
type SomeF = (a: number, b: string) => number
// and we have our utility type
type AppendArgument<F, A> = ... here your code 💪
type FinalF = AppendArgument<SomeF, boolean>
// FinalF should be (x: boolean, a: number, b: string) => number
Post your answers in comments. Have fun! Answer will be published soon!
This series is just starting. If you want to know about new exciting questions from advanced TypeScript please follow me on dev.to and twitter.
Top comments (7)
Playground Link
You should keep the arguments' order, so x must after a and b.
I wasn't able to figure out myself how to dynamically take the pair
arg:type
out from a generic type function :(UPDATE: palmface
Just a note - the term 'append' means to 'add to the end of' (that's why the appendix is at the end of the book). The term you should be using here is `prepend'.
Yes agree.
Interesting tasks, thanks!
To avoid spoilers - my answer in the TS Playground