Я пытаюсь создать функцию конвейера, которая принимает выходные данные предыдущей функции и использует их в качестве входных данных для следующей функции. Чтобы заставить это работать раньше, вы должны были бы выполнить перегрузку типов, но теперь я понимаю, что у нас могут быть параметры типа, которые extend Array
type PipeFunc<T0, T1> = (value: T0) => T1
type Pipe = <T0, T1, T2, T3 extends Array<PipeFunc<T1, T2>>>(
start: T0,
funcs: T3,
) => T2;
declare const map: <T0, T1>(cb: (v: T0) => T1) => PipeFunc<T0, T1>
declare const pipe: Pipe
const result = pipe(10, [
map(v => v + 1),
])
Возможно ли что-то подобное вышеупомянутому? Функция map
имеет типы <unknown, unknown>
TypeScript Playground