-
Notifications
You must be signed in to change notification settings - Fork 41
/
Copy pathtypes.ts
37 lines (30 loc) · 1.01 KB
/
types.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
// copy from
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 => isNil(prop);
export const isStringNumber = (val: string): boolean => {
if (!isString(val)) {
return false;
}
return !Number.isNaN(Number(val));
};