Декларация
type EmptyFunc<T> = (val: T[]) => Maybe<T[]>;
объявляет семейство различных типов функций EmptyFunc<number>
, EmptyFunc<string>
и т. Д., Каждый из которых работает только для указанного типа T
. Вы, вероятно, имели в виду
type EmptyFunc = <T>(val: T[]) => Maybe<T[]>;
, который объявляет тип EmptyFunc
одной универсальной функции, которая работает для всех типов T
. Затем, чтобы применить этот тип к fromEmpty
, просто напишите:
const fromEmpty: EmptyFunc = R.ifElse(hasLength, Just, Maybe.zero);
(Я сам не могу проверить это, поскольку вы не дали определения hasLength
, Just
и Maybe
.) Если это не то, о чем вы спрашивали, уточните вопрос.