Я пытаюсь набрать карри map
функцию в TypeScript. Вот эквивалент JavaScript:
const double = n => n * 2;
const map = f => arr => arr.map(f);
const doubleArr = map(double);
console.log(doubleArr([1, 2, 3]));
// ↳ [2, 4, 6]
В идеале, TypeScript должен иметь возможность сделать вывод, что после предоставления double
в map
, doubleArray
принимает массив чисел и возвращает массив чисел.
Вот что я попробовал:
const double = (n: number) => n * 2;
const map = (f: Function) => (arr: Array<any>) => arr.map(f);
Но TypeScript жалуется на f
внутри map
:
Argument of type 'Function' is not assignable to parameter of type '(value: any, index: number, array: any[]) => unknown'.
Type 'Function' provides no match for the signature '(value: any, index: number, array: any[]): unknown'.
Как бы вы введите эту функцию в TypeScript?