Curry lodash pick 函数没有按预期工作

Curry lodash pick function doesn't work as expected

我是 Lodash curry 函数的新手,我正在努力弄清楚为什么 currying 某些 Lodash 函数(例如 pick)不起作用?

var object = { 'a': 1, 'b': '2', 'c': 3 };
 
_.pick(object, ['a', 'c']);
// => { 'a': 1, 'c': 3 }
// works fine

_.curry(_.pick)(object)(['a', 'c']);
// => TypeError: _.curry(...)(...) is not a function

为什么第二个示例与第一个示例的输出不同?非常感谢您的帮助!

似乎 _.curry() 无法推断 _.pick() 函数所需的参数数量(参数数量)。手动添加_.pick()函数(2)的arity:

const object = { 'a': 1, 'b': '2', 'c': 3 };

const curriedPick = _.curry(_.pick, 2); // <- add the arity
 
console.log(curriedPick(object)(['a', 'c']));
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.20/lodash.min.js" integrity="sha512-90vH1Z83AJY9DmlWa8WkjkV79yfS2n2Oxhsi2dZbIv0nC4E6m5AbH8Nh156kkM7JePmqD6tcZsfad1ueoaovww==" crossorigin="anonymous"></script>