Comment by js8
21 hours ago
Unfortunately many languages have poor support for named type definitions and higher order types, unlike e.g. Haskell. That would definitely help to avoid these problems.
21 hours ago
Unfortunately many languages have poor support for named type definitions and higher order types, unlike e.g. Haskell. That would definitely help to avoid these problems.
This is so, but Tyepscript has a pretty good support for that.
TS doesn't support higher order types. You can't return a generic and pass its parameters later. It's basically only a single level of parametrization.
``` type MyGeneric<TParam> = ...; type HigherOrderGeneric<TParam> = TParam extends string ? MyGeneric : never;
type Hey = HigherOrderGeneric<string><number>;
```
There are libraries that try to achieve this through some hacks, tho their ergonomics are really bad.