简介 (Introduce)
fd-param-checker是一个用于参数检测的工具包,致力于快速完成参数检测条件的约束
安装 (Install)
$ npm install fd-param-checker
使用 (Usage)
引入模块
const checker = require('fd-param-checker');
链式操作
使用new checker()
构造一个参数检查对象,之后调用对应检查方法。
注意
链式操作末尾必须使用done()
方法进行收尾操作。
only约束
only*
限制仅为某一类型。
function func(argv) {
let param = new checker(argv).onlyNumber().done(); // 约束参数argv仅为Number类型,返回值保存到param对象中
}
only*包含的约束
方法名 | 参数 | 说明 |
---|---|---|
onlyNumber() | - | - |
onlyString() | - | - |
onlyUndefined() | - | - |
onlyNull() | - | - |
onlyBoolean() | - | - |
onlyArray() | - | - |
is约束
is*
声明可以为某一类型。
function func(argv) {
let param = new checker(argv).isNumber().done() // 约束参数argv可以为Number类型(不为Number类型则会抛出异常)
}
约束变量时可以使用多个is*方法进行约束,表示该变量可以是多个约束条件中的一个。
function func(argv) {
let param = new checker(argv).isNumber().isString().dome() // 约束参数argv可以为Number或者String类型
}
is*包含的约束
方法名 | 参数 | 说明 |
---|---|---|
isNumber() | - | - |
isString() | - | - |
isUndefined() | - | - |
isNull() | - | - |
isBoolean() | - | - |
isArray() | - | - |
isEmpty() | - | empty包括:```, undefined, null, [], {}`` |
注意
1.isEmpty()允许变量可以是“空”变量,包括:'', undefined, null, [], {}
。
not约束
not*
声明排除某一类型。
function func(argv) {
let param = new checker(argv).notBoolean().notUndefined().notNull().done(); // 约束参数argv不能为Boolean,Undefined,Null类型
}
not*包含的约束
方法名 | 参数 | 说明 |
---|---|---|
notNumber() | - | - |
notString() | - | - |
notUndefined() | - | - |
notNull() | - | - |
notBoolean() | - | - |
notArray() | - | - |
notEmpty() | - | empty包括:```, undefined, null, [], {}`` |
limitLen约束
limitLen()
限制参数长度。注意:limitLen()
方法仅对Number(隐式转换为String,检查Number的字符长度)、String、Array类型有效。
function func(argv) {
let param = new checker(argv).isNumber().isString().isArray().limitLen(9).done(); // 约束参数可以是Number,String,Array类型,且长度为[0,9]
}
limitLen参数列表
function limitLen(max, min=0) {
/* 内部实现代码 */
}
参数名 | 必须 | 默认值 |
---|---|---|
max | 是 | - |
min | 否 | 0 |
limitNum约束
limitNum()
约束Number类型的数值范围。
注意
1.因为涉及到安全数的概念,所以如果数值超过安全数范围(Number.MIN_SAFE_INTEGER~Number.MAX_SAFE_INTEGER)的话,则会失去比较意义。
2.该取值范围为闭区间,如果目标值等于参数也是属于允许范围的。
function func(argv) {
let param = new checker(argv).limitNum(9, 5).done();
}
limitNum参数列表
function limitNum(max, min) {
/* 内部实现代码 */
}
参数名 | 必须 | 默认值 |
---|---|---|
max | 是 | - |
min | 是 | - |
错误处理
如果参数不满足约束条件,则会在链式操作中抛出异常。目前的错误处理只能在链式操作之外使用try...catch
。
function func(argv) {
let param;
try {
param = new checker(argv).isNumber().isString().limitLen(5).done();
}
catch(e) {
console.error(e);
}
}