什么是 custom-is?
custom-is 是一个 JavaScript 库,可以用来判断一个变量是否符合我们所定义的规则。它提供了一组基础的校验函数,同时也支持自定义扩展和组合使用。
安装
使用 npm 进行安装:
npm install custom-is
用法
custom-is 内置了很多通用的校验方法,如字符串、数字、数组、对象等。基本用法非常简单,只需调用相应的校验方法,传入需要校验的变量即可:
-- -------------------- ---- ------- ----- -- - --------------------- -------------------------------- -- ---- ---------------------------- -- ---- ------------------------ -- ----- -- ---- ----------------------- ----- ----- ---- -- ---- -- ----
同时,custom-is 还提供了一些对校验结果进行组合和逻辑操作的方法:
console.log(is.all(is.number, x => x > 0)(1)); // true console.log(is.any(is.string, is.number)('hello')); // true console.log(is.not(is.boolean)(123)); // true
以上代码分别表示:
is.all()
方法表示传入多个校验方法进行组合,并且所有校验都必须返回 true 才会返回 true。is.any()
方法表示传入多个校验方法进行组合,并且只要有一个校验返回 true,就会返回 true。is.not()
方法表示对一个校验方法的结果进行取反。
自定义扩展
sometimes,我们需要对一些特殊的场景进行校验。custom-is 提供了自定义扩展的方法,让我们可以方便地添加自定义校验方法:
const is = require('custom-is'); is.extend({ truthy: value => !!value }); console.log(is.truthy('hello')); // true
以上代码表示添加一个名为 truthy
的自定义校验方法,该方法用于判断一个值是否为 truthy 值。
如此简单地进行添加的原因,在于 custom-is 库实现了 fluent API 设计模式,这意味着我们不必重复编写下列的模式:
if (/* 判断条件 */ ) { // ... } else { // ... }
只要写出一个方法返回值即可。
如何组合自定义扩展?
有一个问题浮现:我已经添加了一个自定义校验方法了,如何与其他校验方法进行组合呢?回答是:直接与内置校验方法一样,将方法名作为参数传入即可。
is.extend({ truthyString: value => is.string(value) && !!value }); console.log(is.truthyString('hello')); // true
其中 truthyString
方法是由 string
与 truthy
组合而成。
结论
本文介绍了 custom-is 的基本用法、组合运算和自定义扩展,它可以帮助我们进行变量的判断和校验,提高代码的健壮性和可读性。当然,还有很多值得探索的地方,欢迎阅读者在实践中发现和使用,希望本文对您有所帮助!
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6005625a81e8991b448df98e