Skip to content

is 类型判断

基于 Object.prototype.toString 的精确类型判断,以及常用值的类型守卫。所有函数均为纯函数,不依赖 vue 及任何 UI 框架。

函数一览

函数说明示例
is(val, type)判断值是否为指定类型is('a', 'String') // true
isDef(val)是否已定义(非 undefined)isDef('a') // true
isUnDef(val)是否未定义isUnDef(undefined) // true
isUndefined(val)是否 undefined(isUnDef 别名)isUndefined(undefined) // true
isNull(val)是否为 nullisNull(null) // true
isNullOrUnDef(val)是否为 null 或 undefinedisNullOrUnDef(null) // true
isNil(val)是否 null 或 undefined(isNullOrUnDef 别名)isNil(null) // true
isObject(val)是否普通对象isObject({}) // true
isDate(val)是否日期isDate(new Date()) // true
isNumber(val)是否数字isNumber(1) // true
isString(val)是否字符串isString('a') // true
isBoolean(val)是否布尔isBoolean(true) // true
isRegExp(val)是否正则isRegExp(/a/) // true
isArray(val)是否数组isArray([1]) // true
isMap(val)是否 MapisMap(new Map()) // true
isFunction(val)是否函数isFunction(() => {}) // true
isPromise(val)是否 PromiseisPromise(Promise.resolve()) // true
isWindow(val)是否 Window 对象isWindow(window) // true
isElement(val)是否真实 DOM 元素isElement(document.body) // true
isEmpty(val)是否为空(null/空串/空数组/空对象/空 Map·Set)isEmpty([]) // true
isEmptyVal(val)是否空值(''/null/undefined)isEmptyVal('') // true
hasKey(obj, key)对象是否有指定键hasKey({ a: 1 }, 'a') // true
isDark()系统是否暗色模式(prefers-color-scheme)isDark() // false

类型签名

ts
function is(val: unknown, type: string): boolean
function isDef<T = unknown>(val?: T): val is T
function isUnDef(val: unknown): val is undefined
const isUndefined: (val: unknown) => val is undefined
function isNull(val: unknown): val is null
function isNullOrUnDef(val: unknown): val is null | undefined
const isNil: (val: unknown) => val is null | undefined
function isObject(val: unknown): val is Record<PropertyKey, unknown>
function isDate(val: unknown): val is Date
function isNumber(val: unknown): val is number
function isString(val: unknown): val is string
function isBoolean(val: unknown): val is boolean
function isRegExp(val: unknown): val is RegExp
function isArray(val: unknown): val is unknown[]
function isMap(val: unknown): val is Map<unknown, unknown>
function isFunction(val: unknown): val is (...args: any[]) => any
function isPromise<T = unknown>(val: unknown): val is Promise<T>
function isWindow(val: unknown): val is Window
function isElement(val: unknown): val is Element
function isEmpty(val: unknown): boolean
function isEmptyVal(val: unknown): boolean
function hasKey<T extends object, K extends PropertyKey>(obj: T, key: K): boolean
function isDark(): boolean

示例

类型判断演示
isObject({})true
isObject([])false
isObject(null)false
isEmpty([])true
isEmpty({ a: 1 })false
isEmpty(0)false
isPromise(Promise.resolve())true
isFunction(() => {})true
isNumber(1)true