gpt4 book ai didi

lodash - 如何输入 lodash/fp curried 函数?

转载 作者:行者123 更新时间:2023-12-02 08:18:25 26 4
gpt4 key购买 nike

我正在尝试添加到流类型的类型中。我从 lodash/fp 模块开始,因为它对我自己最有用。但是,我正在为如何正确输入它而苦苦挣扎。

如果 dropRightWhile 的一个简单示例:

declare function dropRightWhile<T>(iteratee: (val: T)=>boolean, data?: Array<T>): Array<T> | (data: Array<T>)=>Array<T>;

这是我尝试输入的。 dropRightWhile 必须接受一个迭代对象,它可以接受数据。如果你不给它数据,它就会返回一个函数来获取数据,但如果你给它数据,它就会返回一个数组。

我所做的类型并没有严格地将参数数量和返回类型联系起来。但是,当我尝试使用 curry dropRightWhile 时出现错误

var c = dropRightWhile((x) => x> 0); c([0, 1, 2, 3]);错误:无法对数组类型调用函数

我原以为既然 dropRightWhile 可以返回一个函数,那么我就可以调用它,但似乎数组类型妨碍了。

有什么建议吗?

最佳答案

你可以定义2个重载

declare function dropRightWhile<T>(iteratee: (val : T) => boolean, data : Array<T>) : Array<T>;
declare function dropRightWhile<T>(iteratee: (val : T) => boolean): (data : Array<T>) => Array<T>;

// tests
const iteratee = x => x > 0;
(dropRightWhile(iteratee)([0, 1, 2, 3]) : Array<number>);
(dropRightWhile(iteratee, [0, 1, 2, 3]) : Array<number>)

关于lodash - 如何输入 lodash/fp curried 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39856882/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com