element-plus/packages/utils/types.ts
赵添 25bebce59d
feat(components): anchor component (#15670)
* feat(components): anchor component

* fix(components): [anchor] marker opacity style

* test(components): [anchor] update snapshots

* fix(components): [anchor] style change and add version tag

* docs(components): [anchor] affix mode demo add affix offset

* fix(components): [anchor] change api

* fix: slot name change

* fix: scrollTo method change

* fix: delete getCurrentAnchor api

* style: text overflow

* docs: change toc to anchor

* refactor: useEventListener

* fix: update

* fix: update
2024-02-27 14:22:26 +08:00

43 lines
1.1 KiB
TypeScript

import { isArray, isObject, isString } from '@vue/shared'
import { isNil } from 'lodash-unified'
export {
isArray,
isFunction,
isObject,
isString,
isDate,
isPromise,
isSymbol,
} from '@vue/shared'
export { isVNode } from 'vue'
export const isUndefined = (val: any): val is undefined => val === undefined
export const isBoolean = (val: any): val is boolean => typeof val === 'boolean'
export const isNumber = (val: any): val is number => typeof val === 'number'
export const isEmpty = (val: unknown) =>
(!val && val !== 0) ||
(isArray(val) && val.length === 0) ||
(isObject(val) && !Object.keys(val).length)
export const isElement = (e: unknown): e is Element => {
if (typeof Element === 'undefined') return false
return e instanceof Element
}
export const isPropAbsent = (prop: unknown): prop is null | undefined => {
return isNil(prop)
}
export const isStringNumber = (val: string): boolean => {
if (!isString(val)) {
return false
}
return !Number.isNaN(Number(val))
}
export const isWindow = (val: unknown): val is Window => {
return val === window
}