获取柯里化函数的数量

Get arity of curried function

如何在 lodash 中获取柯里化函数的元数?

考虑:

const uniqueBy = curry((predicate, data) => {});

在我写的测试中,我想知道 uniqueBy 函数的元数以及部分应用的 uniqueBy 函数的元数。

const partiallyApplied = uniqueBy(x => x.get('name')); expect(partiallyApplied.length).to.equal(1);

等等。

在普通 JS 中我们可以做到 uniqueBy.length。在 lodash 中总是做同样的事情 returns 0 因为我们最终会计算 wrapper() 函数的元数。

在 lodash 中有定义的方法吗?

Lodash 将其柯里化和其他函数包装器的元数据存储在未公开的 WeakMap 的元数据中。它避免了创建具有 .length 的函数,因为这是额外的开销(通常有条件的最多 10 个参数)并且可能因 ES6 默认参数而变得复杂。