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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
| export {
| isArguments,
| isArrayBuffer,
| isArrayLike,
| isArrayLikeObject,
| isBuffer,
| isBoolean,
| isDate,
| isElement,
| isEmpty,
| isEqual,
| isEqualWith,
| isError,
| isFunction,
| isFinite,
| isLength,
| isMap,
| isMatch,
| isMatchWith,
| isNative,
| isNil,
| isNumber,
| isNull,
| isObjectLike,
| isPlainObject,
| isRegExp,
| isSafeInteger,
| isSet,
| isString,
| isSymbol,
| isTypedArray,
| isUndefined,
| isWeakMap,
| isWeakSet,
| } from 'lodash-es';
| const toString = Object.prototype.toString;
|
| export function is(val: unknown, type: string) {
| return toString.call(val) === `[object ${type}]`;
| }
|
| export function isDef<T = unknown>(val?: T): val is T {
| return typeof val !== 'undefined';
| }
|
| // TODO 此处 isObject 存在歧义
| export function isObject(val: any): val is Record<any, any> {
| return val !== null && is(val, 'Object');
| }
|
| // TODO 此处 isArray 存在歧义
| export function isArray(val: any): val is Array<any> {
| return val && Array.isArray(val);
| }
|
| export function isWindow(val: any): val is Window {
| return typeof window !== 'undefined' && is(val, 'Window');
| }
|
| export const isServer = typeof window === 'undefined';
|
| export const isClient = !isServer;
|
| export function isHttpUrl(path: string): boolean {
| const reg = /^http(s)?:\/\/([\w-]+\.)+[\w-]+(\/[\w- ./?%&=]*)?/;
| return reg.test(path);
| }
|
| export function isPascalCase(str: string): boolean {
| const regex = /^[A-Z][A-Za-z]*$/;
| return regex.test(str);
| }
|
|