Возможно ли связать универсальный аргумент в справочнике по функции TypeScript?
Например, у меня есть промежуточное ПО Koa с определением:
const genericsMiddleware: <T extends MyType>(ctx: MyRouterContext<T>) => Promise<any> =
<T extends MyType>(ctx: MyRouterContext<T>) =>
Promise.resolve(ctx.body.value);
router.post('/api/endpoint',
someOtherMiddleware,
genericsMiddleware); // How to bind to certain type?
router.post('/api/endpoint',
someOtherMiddleware,
(ctx) => genericsMiddleware<TypeDef>(ctx)); // This works but lambda is useless
Теперь я использую лямбду, чтобы обернуть вызов функции в genericsMiddleware
, но это только из-за того, что я не понял, возможно ли связать типовой тип в ссылке на функцию.
Я тоже очень часто использую Ramda и сталкиваюсь с той же проблемой, например, с. R.flatten
так как мне нужно обернуть его лямбдой, чтобы правильно связать типы, например.
R.pipe(
R.map(mappingFunction)
(list) => R.flatten<string>(list)
)(data)
вместо
R.pipe(
R.map(mappingFunction),
R.flatten<string>
)(data)