I am having a question I don't really understand: In my understanding, the compose function can compose functions which return different types than what they expect; i.e. when plugging the pipe together, the output type of the first function must match the input type of the second function.
So, as I understand it, if you compose n functions together, you would have n+1 types.
Is this also handled by your function above? If so, I do not understand yet how this works :)
Hi Sebastian,
This isn't as smart as that: it expects that they all return the same type. If be interested to see if there's a way of typing the other sort though.
Hey Matt,
Thanks for your article!
I am having a question I don't really understand: In my understanding, the
compose
function can compose functions which return different types than what they expect; i.e. when plugging the pipe together, the output type of the first function must match the input type of the second function.So, as I understand it, if you compose n functions together, you would have n+1 types.
Is this also handled by your function above? If so, I do not understand yet how this works :)
All the best,
Sebastian
Hi Sebastian,
This isn't as smart as that: it expects that they all return the same type. If be interested to see if there's a way of typing the other sort though.
Hey Matt,
the only way I see it is via N+1 different generic types - though that is ofc. not as nice as your generic implementation.
See:
All the best, Sebastian
There is a way to simulate it, but wiht limitations github.com/reduxjs/redux/blob/686d...
Yeah, I can't see any way that doesn't boil down to "use lots of repetitive overloads"