typescript实现curring,柯里化函数的类型标注
前言
最近我在封装一些工具方法,在封装到柯里化函数的时候,发现柯里化函数的 ts 类型标注十分困难。尝试了很多办法都没办法实现,使用 curry 生成的新函数能带提示的输入多个参数。
效果
最后取了一个择中的办法,柯里化函数本身传递两个参数fn
和args
,第一次调用传达一个函数和 N 和参数,生成新的函数 newFn,newFn 中接收一个后续参数,带类型提示。
实现
1 | /** |
此处用到了 ts 中的 infer,infer 表示占位,一般用于后面想要继承传入类型的时候,使用了 infer 后 ts 会自动推导。
1 | function f(params: infer P extends any): P; |
如上:我们定义函数 f,调用函数的时候传入的是 number,则 P 就是 number 类型。
- 标题: typescript实现curring,柯里化函数的类型标注
- 作者: 兰涛
- 创建于 : 2023-07-04 16:21:23
- 更新于 : 2024-01-26 09:52:55
- 链接: https://lands.work/d37ea48/
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论