Is 判断函数
我们经常需要对数据的类型进行判断,然后程序才能往下执行,所以把很多常用的is判断函数列举出来。
is
判断两个值是否相等
ts
// 用于判断数据类型的字段有String、Array、Number、Boolean、Null、Undefined、Object、Date、Function等
is(2, 'String') // false
is('2', 'String') // true
is( [], 'Array' ) // true
is('1', 'Number') // false
is(true, 'Boolean') // true
is(null, 'Null') // trueisString 是否为字符串
ts
isString('111') // trueisNumber 是否为数字
ts
isNumber(122) // trueisBoolean 是否为布尔值
ts
isBoolean(false) // trueisNull 是否为空值
ts
isNull(false) // falseisObject 是否为对象
ts
isObject({}) // trueisArray 是否为数组
ts
isArray({}) // falseisFunction
是否为函数
ts
isFunction(() => {}) // trueisDate
是否为时间
ts
isDate(new Date()) // trueisDef 不为undefined
ts
const a = '11'
isDef(a) // trueisUnDef 为undefined
ts
const a = '11'
isUnDef(b) // trueisNullOrUnDef 是否为空值或者undefined
ts
export function isNullOrUnDef(val: unknown): val is null | undefined {
return isUnDef(val) || isNull(val)
}isVnode 是否为渲染函数
ts
export function isVnode (vnode: any): vnode is VNode {
return vnode && vnode.__v_isVNode === true
}isPromise 是否为承诺
ts
export function isPromise<T = any>(val: unknown): val is Promise<T> {
return is(val, 'Promise') && isObject(val) && isFunction(val.then) && isFunction(val.catch)
}isElement 是否为元素
ts
export function isElement(val: unknown): val is Element {
return isObject(val) && !!val.tagName
}isWindow
是否为window窗口
ts
export function isWindow(val: any): val is Window {
return typeof window !== 'undefined' && is(val, 'Window');
}isEmpty
是否为空
ts
export function isEmpty<T = unknown>(val: T): val is T {
if (isArray(val) || isString(val)) {
return val.length === 0
}
if (val instanceof Map || val instanceof Set) {
return val.size === 0
}
if (isObject(val)) {
return Object.keys(val).length === 0
}
return false
}