检查字符串是否为空
const checkStringEmpty = (str: any) => {
return !str
}
检查数值是否为空
const checkNumberEmpty = (num: any) => {
return !num.toString()
}
检查对象是否为空
const checkObjectEmpty = (obj: any) => {
return Object.keys(obj).length === 0
}
检查数组是否为空
const checkArrayEmpty = (arr: any) => {
return arr.length === 0
}
各数据类型检查方法字典
const checkDataEmptyDict = {
string: checkStringEmpty,
number: checkNumberEmpty,
Object: checkObjectEmpty,
Array: checkArrayEmpty,
function: () => false,
undefined: () => true,
boolean: (data: any) => !data,
Null: () => true
}
最后判断是否为空值,导出即可
export const isEmpty = (data: any): boolean => {
let type: any = typeof (data)
// 基础数据类型
if (type !== 'object') return checkDataEmptyDict[type](data)
// 引用数据类型 Object || Array || Function || null
type = Object.prototype.toString.call(data).replace(/^\[object (\S+)\]$/, '$1')
return checkDataEmptyDict[type](data)
}