Nic*_*her 5 typescript ramda.js
我不知道如何才能完成这项工作。我正在打字稿中定义一个函数,它本质上包装了 Ramda 的管道函数。我想接受可能是也可能不是函数的值,将非函数值包装在常量函数中,然后将其全部传递给管道。
这是我尝试编写的原始函数:
const convertToPipeable = (values: any[]) => {
const valueFunctions = map(valueAsFunction, values);
return pipe(...valueFunctions);
}
Run Code Online (Sandbox Code Playgroud)
当我通过管道传播 valueFunctions 时,打字稿抱怨说“预期有 1-6 个参数,但得到了 0 个或更多”。我意识到这是因为管道的类型是针对每个参数长度情况(从 1 到 6)的重载,但我很难相信不可能将这个数组分布在它上面。我尝试了几件事,从将values参数定义为一个大元组,到使用 Ramdaapply方法代替扩展运算符,但这些都没有正常工作。
如果没有好的方法来输入此内容,可能有什么替代方法?
干杯!
如果 for 的类型声明pipe最多只接受 6 个参数,但您有一个(据编译器所知)可以任意长的数组,那么您可以做的最好的事情pipe是:
return (<any>pipe)(...valueFunctions);
Run Code Online (Sandbox Code Playgroud)
我对 Ramda 不熟悉,不知道您是否可以使用其他 Ramda 函数。
| 归档时间: |
|
| 查看次数: |
1387 次 |
| 最近记录: |