假设一个函数返回了另一个函数。
function foo() {
return () => 1;
}
我可以使用什么匹配器expect(foo())
来确保foo()
返回函数?另外,有没有办法验证功能签名?
typeof有很多怪癖,但我认为在这种情况下使用似乎很明智。
expect( typeof foo() ).toBe('function')
您可以使用来检查一个函数定义了多少个参数 .length
expect( (a, b, c) => {} ).toHaveLength( 3 )
但是没有方法可以强制使用javascript中的参数类型。所有功能都可以接受任何类型。而且,您始终可以将比“指定”更多的参数传递给函数。而且该函数可能会arguments
用来读取所有这些参数,因此.length
在您的用例中甚至可能用途有限。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句