Рекурсивное применение общих типов c к функции pipe (value, ... funcs)? - PullRequest
0 голосов
/ 03 августа 2020

Я пытаюсь создать функцию конвейера, которая принимает выходные данные предыдущей функции и использует их в качестве входных данных для следующей функции. Чтобы заставить это работать раньше, вы должны были бы выполнить перегрузку типов, но теперь я понимаю, что у нас могут быть параметры типа, которые 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...