常用js
类型判断
ts
export const objectToString = Object.prototype.toString
export function toTypeString(value: unknown): string {
return objectToString.call(value)
}
export const isArray = Array.isArray
export function isMap(val: unknown): val is Map<any, any> {
return toTypeString(val) === '[object Map]'
}
export function isSet(val: unknown): val is Set<any> {
return toTypeString(val) === '[object Set]'
}
export function isDate(val: unknown): val is Date {
return toTypeString(val) === '[object Date]'
}
export function isRegExp(val: unknown): val is RegExp {
return toTypeString(val) === '[object RegExp]'
}
export function isFunction(val: unknown): val is Function {
return typeof val === 'function'
}
export const isString = (val: unknown): val is string => typeof val === 'string'
export const isSymbol = (val: unknown): val is symbol => typeof val === 'symbol'
export function isObject(val: unknown): val is Record<any, any> {
return val !== null && typeof val === 'object'
}
export function isPromise<T = any>(val: unknown): val is Promise<T> {
return (
(isObject(val) || isFunction(val))
&& isFunction((val as any).then)
&& isFunction((val as any).catch)
)
}
export const objectToString = Object.prototype.toString
export function toTypeString(value: unknown): string {
return objectToString.call(value)
}
export const isArray = Array.isArray
export function isMap(val: unknown): val is Map<any, any> {
return toTypeString(val) === '[object Map]'
}
export function isSet(val: unknown): val is Set<any> {
return toTypeString(val) === '[object Set]'
}
export function isDate(val: unknown): val is Date {
return toTypeString(val) === '[object Date]'
}
export function isRegExp(val: unknown): val is RegExp {
return toTypeString(val) === '[object RegExp]'
}
export function isFunction(val: unknown): val is Function {
return typeof val === 'function'
}
export const isString = (val: unknown): val is string => typeof val === 'string'
export const isSymbol = (val: unknown): val is symbol => typeof val === 'symbol'
export function isObject(val: unknown): val is Record<any, any> {
return val !== null && typeof val === 'object'
}
export function isPromise<T = any>(val: unknown): val is Promise<T> {
return (
(isObject(val) || isFunction(val))
&& isFunction((val as any).then)
&& isFunction((val as any).catch)
)
}
数组判空
ts
export const isEmptyArray = (val: unknonw) => Array.isArray(val) && val.length
export const isEmptyArray = (val: unknonw) => Array.isArray(val) && val.length