检查字符串是否为空

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)
}

Logo

欢迎加入 MCP 技术社区!与志同道合者携手前行,一同解锁 MCP 技术的无限可能!

更多推荐