utils
package version >0.3.0
shadcn any version
author: cmtlyt
update time: 2026/04/01 17:25:06
utils 是 lingshu-toolkit 的基础工具模块,提供了类型安全的工具函数和类型判断方法。包含两个子模块:base(基础工具函数)和 verify(类型判断函数)。
特性
- 完整的类型推断:所有函数都提供完整的 TypeScript 类型支持
- 类型守卫:verify 模块的所有判断函数都是类型守卫,提供精确的类型推断
- 零依赖:纯 JavaScript 实现,无外部依赖
- 高性能:轻量级实现,性能优化
- 类型安全:所有函数都经过严格的类型检查
install
npm
shadcn
usage
Base 模块
Base 模块提供了基础的工具函数。
noop - 空函数
返回 undefined 的空函数,常用于默认回调或占位符。
identity - 恒等函数
返回传入的参数本身,常用于函数组合或默认转换器。
getType - 获取类型名称
返回值的精确类型名称,返回小写字符串。
Verify 模块
Verify 模块提供了类型判断函数,所有函数都是类型守卫。
基础类型判断
isSymbol - 判断是否为 Symbol
isUndef - 判断是否为 undefined
isNull - 判断是否为 null
isNullOrUndef - 判断是否为 null 或 undefined
isNaN - 判断是否为 NaN
isPlainSymbol - 判断是否为普通 Symbol
判断是否为非全局注册的 Symbol。
对象类型判断
isObject - 判断是否为对象
包括数组、对象、Date、RegExp 等。
isPlainObject - 判断是否为纯对象
不包括数组。
isArray - 判断是否为数组
isEmptyArray - 判断是否为空数组
原始类型判断
isString - 判断是否为字符串
isEmptyString - 判断是否为空字符串
isNumber - 判断是否为数字
包括 NaN。
isPlainNumber - 判断是否为纯数字
排除 NaN。
isPropertyKey - 判断是否为合法的对象属性键
isBoolean - 判断是否为布尔值
布尔值判断
isTrue - 判断是否为 true 值
包括布尔值 true 和字符串 'true'(不区分大小写)。
isFalse - 判断是否为 false 值
包括布尔值 false 和字符串 'false'(不区分大小写)。
isTruthy - 判断是否为真值
⚠️ 注意:字符串 'false' 等满足 isFalse 判断的字符串也会被视为真值。
isFalsy - 判断是否为假值
⚠️ 注意:字符串 'false' 等满足 isFalse 判断的字符串不会被视为假值。
函数和异步判断
isFunction - 判断是否为函数
isPromise - 判断是否为 Promise
注意事项
- 类型守卫:所有 verify 模块的函数都是类型守卫,可以在条件语句中自动缩小类型范围
- NaN 处理:
isNumber包含 NaN,isPlainNumber排除 NaN,根据需求选择 - 对象判断:
isObject包含数组,isPlainObject排除数组 - 布尔字符串:
isTrue和isFalse支持字符串'true'和'false'(不区分大小写) - 真值判断:
isTruthy使用 JavaScript 的真值判断,isFalsy使用假值判断 - Symbol 判断:
isPlainSymbol排除全局注册的 Symbol(如Symbol.iterator) - Promise 判断:
isPromise判断对象是否有then方法,不是严格的 Promise 实例检查 - 性能:所有函数都经过性能优化,适合高频调用场景