判断值是否为空
/**
* 判断值是否为空、undefined、空字符串、空数组、空对象、空Map、空Set
* @param value - 要检查的值
*/
export function isEmpty(value: any): boolean {
// 检查值是否为 null 或 undefined
if (value == null) {
return true;
}
// 检查值是否为空字符串
if (typeof value === 'string') {
return value.trim().length === 0;
}
// 检查值是否为空数组
if (Array.isArray(value)) {
return value.length === 0;
}
// 检查值是否为空 Map 或 Set
if (value instanceof Map || value instanceof Set) {
return value.size === 0;
}
// 检查值是否为对象
if (typeof value === 'object') {
// 排除 Date、RegExp 和 Error 对象,这些对象不被视为“空”
if (value instanceof Date || value instanceof RegExp || value instanceof Error) {
return false;
}
// 检查对象是否为空对象
return Object.keys(value).length === 0;
}
// 其他类型默认不被视为“空”
return false;
}