-
Notifications
You must be signed in to change notification settings - Fork 0
/
type.js
58 lines (49 loc) · 1.55 KB
/
type.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
exports.isNil = function(target) {
return target === undefined || target === null
}
/** 判断数字 */
const isNum = exports.isNum = function(target) {
return typeof(target) == 'number' && (!isNaN(target))
}
/** 判断非负数 */
exports.isUNum = function(target) {
return isNum(target) && target >= 0
}
/** 判断正数 */
exports.isPNum = function(target) {
return isNum(target) && target > 0
}
/** 判断整形 */
const isInt = exports.isInt = function(target) {
return isNum(target) && (target == Math.floor(target))
}
/** 判断非负整数 */
exports.isUInt = function(target) {
return isInt(target) && target >= 0
}
/** 判断正整数 */
exports.isPInt = function(target) {
return isInt(target) && target > 0
}
/** 判断字符串 */
exports.isString = function(target) {
// 本来简单的逻辑不应出现在库里
// 但考虑到这个“简单的逻辑”可能是错的,于是以后如果发现是错的,可以在此处修改逻辑,以免到处改
return typeof target == 'string'
}
/** 判断非空字符串(是字符串,但非空) */
exports.nonEmptyString = function(target) {
return exports.isString(target) && target.length > 0
}
/** 判断所有参数是否为 checker 类型 */
exports.checkAll = function(checker, ...args) {
return args.every(checker)
}
/** 判断是否为函数 */
exports.isFunction = function(target) {
return typeof target == 'function'
}
/** 判断基本数据类型 */
exports.isPrimative = function(target) {
return typeof target != 'object' && typeof target != 'function' || target === null
}