Я понятия не имею, что я делаю неправильно, но при попытке работать с полиморфными функциями я продолжаю ударять по одной и той же стене some incompatible instantiation of
. Любая идея, что я делаю неправильно?`некоторая несовместимая копия` при проверке полиморфных функций
type EqualsBy = <Obj, Value>(Obj => Value, Value) => (Obj => boolean)
export const equalsBy: EqualsBy = (f, value) => (obj => f(obj) === value)
.
2: export const equalsBy: EqualsBy = (f, value) => (obj => f(obj) === value)
^Obj. This type is incompatible with the expected param type of
2: export const equalsBy: EqualsBy = (f, value) => (obj => f(obj) === value)
^some incompatible instantiation of `Obj`
EDIT: Легче example с той же проблемой:
type EqualsBy = <Obj, Value>(Obj => Value, Value, Obj) => boolean
export const equalsBy: EqualsBy = (f, value, obj) => value === f(obj)