检查一个值是否为空。
注: 目前只支持检测部分类型 「undefined,null,string,array,object」
isEmpty
函数签名
typescript
function isEmpty(value: unknown): value is undefined | null | [] | ""描述
检查一个值是否为空。 注: 目前只支持检测部分类型 「undefined,null,string,array,object」
参数
| 参数名 | 类型 | 可选 | 默认值 | 描述 |
|---|---|---|---|---|
value | unknown | 否 | - | - |
返回值
value is undefined \| null \| \[\] \| ""
点击查看源码
js
/**
* 获取值的类型字符串。
*
* @param {unknown} value - 要获取类型的值。
* @returns {string} 值的类型字符串。
*/
function getType(value) {
return Object.prototype.toString.call(value).slice(8, -1);
}
/**
* 检查一个值是否为 Object 类型。
*
* @param {unknown} value - 要检查的值。
* @returns {value is object} 如果值为 Object 类型,则返回 true,否则返回 false。
*/
function isObject(value) {
return getType(value) === "Object";
}
/**
* 检查一个值是否为 String 类型。
*
* @param {unknown} value - 要检查的值。
* @returns {value is string} 如果值为 String 类型,则返回 true,否则返回 false。
*/
function isString(value) {
return typeof value === "string";
}
/**
* 检查一个值是否为 `undefined` 或 `null`。
*
* @param {unknown} value - 要检查的值。
* @returns {value is undefined | null} 如果值为 `undefined` 或 `null`,则返回 `true`,否则返回 `false`。
*/
function isNullOrUndefined(value) {
return value === undefined || value === null;
}
/**
* 检查一个值是否为非空数组。
*
* @param {unknown} value - 要检查的值。
* @returns {value is any[]} 如果值为非空数组,则返回 true,否则返回 false。
*/
function isNonEmptyArray(value) {
return Array.isArray(value) && value.length > 0;
}
/**
* 检查一个值是否为非空对象。
*
* @param {unknown} value - 要检查的值。
* @returns {value is object} 如果值有最少一个可枚举属性,则返回 true,否则返回 false。
*/
function isNonEmptyObject(value) {
return isObject(value) && Object.keys(value).length > 0;
}
/**
* 检查一个值是否为非空字符串。
*
* @param {unknown} value - 要检查的值。
* @returns {value is string} 如果值为非空字符串,则返回 true,否则返回 false。
*/
function isNonEmptyString(value) {
return isString(value) && value.length > 0;
}
/**
* 检查一个值是否为空。
* 注: 目前只支持检测部分类型 「undefined,null,string,array,object」
* @param {unknown} value - 要检查的值。
* @returns {value is undefined | null | [] | ""} 如果值为空,则返回 true,否则返回 false。
*/
export function isEmpty(value) {
return (
isNullOrUndefined(value) ||
!(
isNonEmptyArray(value) ||
isNonEmptyObject(value) ||
isNonEmptyString(value)
)
);
}ts
/**
* 获取值的类型字符串。
*
* @param {unknown} value - 要获取类型的值。
* @returns {string} 值的类型字符串。
*/
function getType(value: unknown): string {
return Object.prototype.toString.call(value).slice(8, -1);
}
/**
* 检查一个值是否为 Object 类型。
*
* @param {unknown} value - 要检查的值。
* @returns {value is object} 如果值为 Object 类型,则返回 true,否则返回 false。
*/
function isObject(value: unknown): value is object {
return getType(value) === "Object";
}
/**
* 检查一个值是否为 String 类型。
*
* @param {unknown} value - 要检查的值。
* @returns {value is string} 如果值为 String 类型,则返回 true,否则返回 false。
*/
function isString(value: unknown): value is string {
return typeof value === "string";
}
/**
* 检查一个值是否为 `undefined` 或 `null`。
*
* @param {unknown} value - 要检查的值。
* @returns {value is undefined | null} 如果值为 `undefined` 或 `null`,则返回 `true`,否则返回 `false`。
*/
function isNullOrUndefined(value: unknown): value is undefined | null {
return value === undefined || value === null;
}
/**
* 检查一个值是否为非空数组。
*
* @param {unknown} value - 要检查的值。
* @returns {value is any[]} 如果值为非空数组,则返回 true,否则返回 false。
*/
function isNonEmptyArray(value: unknown): value is any[] {
return Array.isArray(value) && value.length > 0;
}
/**
* 检查一个值是否为非空对象。
*
* @param {unknown} value - 要检查的值。
* @returns {value is object} 如果值有最少一个可枚举属性,则返回 true,否则返回 false。
*/
function isNonEmptyObject(value: unknown): value is object {
return isObject(value) && Object.keys(value).length > 0;
}
/**
* 检查一个值是否为非空字符串。
*
* @param {unknown} value - 要检查的值。
* @returns {value is string} 如果值为非空字符串,则返回 true,否则返回 false。
*/
function isNonEmptyString(value: unknown): value is string {
return isString(value) && value.length > 0;
}
/**
* 检查一个值是否为空。
* 注: 目前只支持检测部分类型 「undefined,null,string,array,object」
* @param {unknown} value - 要检查的值。
* @returns {value is undefined | null | [] | ""} 如果值为空,则返回 true,否则返回 false。
*/
export function isEmpty(value: unknown): value is undefined | null | [] | "" {
return (
isNullOrUndefined(value) ||
!(
isNonEmptyArray(value) ||
isNonEmptyObject(value) ||
isNonEmptyString(value)
)
);
}如有错误,请提交issue :::