@jhqn/utils-core 0.0.3-beta.6 → 0.0.3-beta.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.mts CHANGED
@@ -7,6 +7,59 @@ import { ConfigType } from 'dayjs';
7
7
  export { Dayjs, default as dayjs } from 'dayjs';
8
8
  export { detect } from 'detect-browser';
9
9
 
10
+ /**
11
+ * 数字或字符串
12
+ */
13
+ type Numeric = number | string;
14
+ /**
15
+ * 可 Null
16
+ */
17
+ type Nullable<T> = T | null;
18
+ /**
19
+ * 可 Undefined
20
+ */
21
+ type Undefinable<T> = T | undefined;
22
+ /**
23
+ * 可 Null 或 Undefined
24
+ */
25
+ type NullOrUndefinable<T> = Nullable<Undefinable<T>>;
26
+ /**
27
+ * alias for NullOrUndefinable
28
+ */
29
+ type UnDef<T> = NullOrUndefinable<T>;
30
+ /**
31
+ * 请求结果
32
+ */
33
+ type Res<T = any> = Service.Response<T>;
34
+ /**
35
+ * 分页请求结果数据
36
+ */
37
+ type PageResData<T = any> = Service.PageResponseData<T>;
38
+ /**
39
+ * 分页请求结果
40
+ */
41
+ type PageRes<T = any> = Service.PageResponse<T>;
42
+ /**
43
+ * 分页请求参数
44
+ */
45
+ type PageReq<T extends Record<string, any> = NonNullable<unknown>> = Service.PageRequestParams<T>;
46
+ /**
47
+ * 可能是数组
48
+ */
49
+ type MaybeArray<T = any> = T | Array<T>;
50
+ /**
51
+ * 枚举键值对
52
+ */
53
+ type VK<T = string> = Record<string | number, T>;
54
+ /**
55
+ * 字典
56
+ */
57
+ type Dict<T = string> = Record<string, T>;
58
+ /**
59
+ * 使某键可选
60
+ */
61
+ type PartialBy<T, K extends keyof T> = Omit<T, K> & Partial<Pick<T, K>>;
62
+
10
63
  /**
11
64
  * snake2Kebab
12
65
  * @param {string} str 字符串
@@ -217,43 +270,6 @@ declare const jLogDedupe: (...args: any[]) => void;
217
270
  */
218
271
  declare const jLogOnce: (...args: any[]) => void;
219
272
 
220
- /**
221
- * 数字或字符串
222
- */
223
- declare type Numeric = number | string;
224
- /**
225
- * 可 Null
226
- */
227
- declare type Nullable<T> = T | null;
228
- /**
229
- * 可 Undefined
230
- */
231
- declare type Undefinable<T> = T | undefined;
232
- /**
233
- * 可 Null 或 Undefined
234
- */
235
- declare type NullOrUndefinable<T> = Nullable<Undefinable<T>>;
236
- /**
237
- * alias for NullOrUndefinable
238
- */
239
- declare type UnDef<T> = NullOrUndefinable<T>;
240
- /**
241
- * 请求结果
242
- */
243
- declare type Res<T = any> = Service.Response<T>;
244
- /**
245
- * 分页请求结果数据
246
- */
247
- declare type PageResData<T = any> = Service.PageResponseData<T>;
248
- /**
249
- * 分页请求结果
250
- */
251
- declare type PageRes<T = any> = Service.PageResponse<T>;
252
- /**
253
- * 可能是数组
254
- */
255
- declare type MaybeArray<T = any> = T | Array<T>;
256
-
257
273
  /**
258
274
  * 隐藏中间部分
259
275
  * @param {string} str 需要隐藏的字符串
@@ -392,6 +408,16 @@ declare const getCodeOfDate: () => number;
392
408
  */
393
409
  declare const getCodeOfMonth: () => number;
394
410
 
411
+ /**
412
+ * 设置文件基本路径
413
+ * @param baseUrl
414
+ */
415
+ declare function setBaseAttachUrl(baseUrl: string): void;
416
+ /**
417
+ * 获取文件基本路径
418
+ */
419
+ declare function getBaseAttachUrl(): string;
420
+
395
421
  /**
396
422
  * Json字符串转对象
397
423
  * @param str
@@ -420,13 +446,25 @@ declare const filterObj: (obj: Record<string, any>, keys: string[], reverse?: bo
420
446
  [k: string]: any;
421
447
  };
422
448
 
449
+ /**
450
+ * 千位分隔符
451
+ * @param num
452
+ */
453
+ declare const toThousands: (num: number) => string | undefined;
454
+ /**
455
+ * 货币格式化
456
+ * @param {number | string | bigint} currency - 金额
457
+ * @param {number} [maximumFractionDigits] - 小数位数
458
+ */
459
+ declare const currencyFmt: (currency: UnDef<Numeric | bigint>, maximumFractionDigits?: number) => string;
460
+
423
461
  /**
424
462
  * 格式化时间
425
463
  * @param {import('dayjs').ConfigType} date 时间
426
464
  * @param {string} format 格式
427
465
  * @returns {string} 格式化后的时间
428
466
  */
429
- declare const dateFmt: (date: ConfigType, format?: string | 'date' | 'datetime') => string;
467
+ declare const dateFmt: (date: ConfigType, format?: string | "date" | "datetime") => string;
430
468
  /**
431
469
  * 格式化时间间隔
432
470
  * @param {import('dayjs').ConfigType} start 开始时间
@@ -434,28 +472,6 @@ declare const dateFmt: (date: ConfigType, format?: string | 'date' | 'datetime')
434
472
  */
435
473
  declare const dateDuration: (start: ConfigType, end: ConfigType) => string;
436
474
 
437
- /**
438
- * 设置文件基本路径
439
- * @param baseUrl
440
- */
441
- declare function setBaseAttachUrl(baseUrl: string): void;
442
- /**
443
- * 获取文件基本路径
444
- */
445
- declare function getBaseAttachUrl(): string;
446
-
447
- /**
448
- * 千位分隔符
449
- * @param num
450
- */
451
- declare const toThousands: (num: number) => string | undefined;
452
- /**
453
- * 货币格式化
454
- * @param {number | string | bigint} currency - 金额
455
- * @param {number} [maximumFractionDigits] - 小数位数
456
- */
457
- declare const currencyFmt: (currency: UnDef<Numeric | bigint>, maximumFractionDigits?: number) => string;
458
-
459
475
  type VantUploadFileStatus = '' | 'uploading' | 'done' | 'failed'
460
476
  type AntdUploadFileStatus = 'removed' | 'uploading' | 'done' | 'error'
461
477
  type ElementPlusUploadFileStatus = 'ready' | 'uploading' | 'success' | 'fail'
@@ -504,16 +520,16 @@ declare const recoverFile: (resource: Resource) => {
504
520
  group: string;
505
521
  id: string;
506
522
  name: string;
507
- size?: number | undefined;
508
- uid?: string | undefined;
509
- objectUrl?: string | undefined;
510
- isImage?: boolean | undefined;
511
- message?: string | undefined;
512
- deletable?: boolean | undefined;
513
- reupload?: boolean | undefined;
514
- fileName?: string | undefined;
515
- thumbUrl?: string | undefined;
516
- percentage?: number | undefined;
523
+ size?: number;
524
+ uid?: string;
525
+ objectUrl?: string;
526
+ isImage?: boolean;
527
+ message?: string;
528
+ deletable?: boolean;
529
+ reupload?: boolean;
530
+ fileName?: string;
531
+ thumbUrl?: string;
532
+ percentage?: number;
517
533
  };
518
534
  /**
519
535
  * 附件格式
@@ -528,18 +544,32 @@ declare const attachFmt: (data: UnDef<MaybeArray<Resource>> | string) => {
528
544
  group: string;
529
545
  id: string;
530
546
  name: string;
531
- size?: number | undefined;
532
- uid?: string | undefined;
533
- objectUrl?: string | undefined;
534
- isImage?: boolean | undefined;
535
- message?: string | undefined;
536
- deletable?: boolean | undefined;
537
- reupload?: boolean | undefined;
538
- fileName?: string | undefined;
539
- thumbUrl?: string | undefined;
540
- percentage?: number | undefined;
547
+ size?: number;
548
+ uid?: string;
549
+ objectUrl?: string;
550
+ isImage?: boolean;
551
+ message?: string;
552
+ deletable?: boolean;
553
+ reupload?: boolean;
554
+ fileName?: string;
555
+ thumbUrl?: string;
556
+ percentage?: number;
541
557
  }[];
542
558
 
559
+ /**
560
+ * 自然排序
561
+ * @param {UnDef<string>[] | UnDef<number>[]} arr - 数字或字符串数组
562
+ * @returns {UnDef<string>[] | UnDef<number>[]} - 排序后的数组
563
+ */
564
+ declare const naturalSort: (arr: UnDef<string>[] | UnDef<number>[]) => UnDef<string>[] | UnDef<number>[];
565
+ /**
566
+ * 根据 key 自然排序
567
+ * @param arr - 数组
568
+ * @param {string} key - 键名
569
+ * @returns {any[]} - 排序后的数组
570
+ */
571
+ declare const naturalSortBy: <T extends Record<string, UnDef<Numeric>>>(arr: T[], key: keyof T) => T[];
572
+
543
573
  /**
544
574
  * 检测变量类型
545
575
  * @param {any} val 检测的目标
@@ -589,7 +619,7 @@ declare const isObject: (val: any) => val is Record<any, any>;
589
619
  * 是否是数组
590
620
  * @param {any} val 检测的目标
591
621
  */
592
- declare const isArray: (val: any) => val is any[];
622
+ declare const isArray: (val: any) => val is Array<any>;
593
623
  /**
594
624
  * 是否是函数,但也有可能是Class
595
625
  * @param {any} val 检测的目标
@@ -677,7 +707,7 @@ declare const isArrStr: (str: UnDef<string>) => boolean;
677
707
  * ```
678
708
  * @returns {boolean} boolean
679
709
  */
680
- declare const isValidKey: (key: string | number | symbol, object: object) => key is never;
710
+ declare const isValidKey: (key: string | number | symbol, object: object) => key is keyof typeof object;
681
711
  /**
682
712
  * 是否是空值/空数组/空对象 null undefined '' [] {} Set Map
683
713
  * @param val
@@ -685,30 +715,15 @@ declare const isValidKey: (key: string | number | symbol, object: object) => key
685
715
  declare const isEmpty: (val: UnDef<Numeric | boolean | Record<any, any> | Array<any> | Set<any> | Map<any, any>>) => boolean;
686
716
 
687
717
  /**
688
- * 校验接口返回code
689
- * @param res
690
- * @param code
691
- */
692
- declare const isValidResCode: (res: Res, code?: number) => boolean;
693
- /**
694
- * 校验接口返回内容
695
- * @param res
696
- * @param code
697
- */
698
- declare const isValidRes: (res: Res, code?: number) => boolean;
699
- /**
700
- * 校验接口数组返回内容
701
- * @param res
702
- * @param code
703
- */
704
- declare const isValidArrRes: (res: Res<any[]>, code?: number) => boolean;
705
- /**
706
- * 校验接口分页返回内容
707
- * @param res
708
- * @param code
718
+ * 是否是[统一社会信用代码](https://zh.wikipedia.org/zh-cn/%E7%BB%9F%E4%B8%80%E7%A4%BE%E4%BC%9A%E4%BF%A1%E7%94%A8%E4%BB%A3%E7%A0%81)
719
+ * @example
720
+ * ```ts
721
+ * isUSCI('91350100M000100Y43') // true
722
+ * ```
723
+ * @param {UnDef<string>} val - 待校验的值
724
+ * @returns {boolean} 是否是统一社会信用代码
709
725
  */
710
- declare const isValidPageRes: (res: PageRes, code?: number) => boolean;
711
-
726
+ declare const isUSCI: (val: UnDef<string>) => boolean;
712
727
  /**
713
728
  * 是否是中国手机号
714
729
  * @param val
@@ -753,4 +768,29 @@ declare const nonASCII: (text: string) => boolean;
753
768
  */
754
769
  declare const isValidFileType: (file: File, type: string) => boolean;
755
770
 
756
- export { type MaybeArray, type NullOrUndefinable, type Nullable, type Numeric, type PageRes, type PageResData, type Res, type UnDef, type Undefinable, attachFmt, camel2Kebab, camel2Pascal, camel2Snake, camel2Title, checkImg, currencyFmt, dateDuration, dateFmt, filterObj, fixiOSInputAutoZoomIn, getBaseAttachUrl, getCodeOfDate, getCodeOfHour, getCodeOfMonth, getHostEnv, getVariableType, hideBankCard, hideCardNo, hideEmail, hideFirstName, hideHead, hideMiddle, hideName, hidePhone, hideSurname, hideTail, hideThird, inBrowser, isArrStr, isArray, isBigInt, isBlob, isBoolean, isDate, isDef, isEmail, isEmpty, isError, isFile, isFunction, isIdCard, isJSONStr, isMap, isNull, isNumber, isNumeric, isObject, isPhone, isPromise, isRegExp, isSet, isString, isSymbol, isTel, isURL, isUndefined, isValidArrRes, isValidFileType, isValidKey, isValidPageRes, isValidRes, isValidResCode, isWeakMap, isWeakSet, jClear, jDebug, jError, jGroup, jGroupC, jGroupE, jInfo, jLog, jLogDedupe, jLogOnce, jTime, jTimeEnd, jWarn, kebab2Camel, kebab2Pascal, kebab2Snake, kebab2Title, nonASCII, parseToJSON, pascal2Camel, pascal2Kebab, pascal2Snake, pascal2Title, recoverFile, replacer, resUrl, reviver, setBaseAttachUrl, snake2Camel, snake2Kebab, snake2Pascal, snake2Title, title2Camel, title2Kebab, title2Pascal, title2Snake, toThousands, userAgent, waitTime };
771
+ /**
772
+ * 校验接口返回code
773
+ * @param res
774
+ * @param code
775
+ */
776
+ declare const isValidResCode: (res: Res, code?: number) => boolean;
777
+ /**
778
+ * 校验接口返回内容
779
+ * @param res
780
+ * @param code
781
+ */
782
+ declare const isValidRes: (res: Res, code?: number) => boolean;
783
+ /**
784
+ * 校验接口数组返回内容
785
+ * @param res
786
+ * @param code
787
+ */
788
+ declare const isValidArrRes: (res: Res<any[]>, code?: number) => boolean;
789
+ /**
790
+ * 校验接口分页返回内容
791
+ * @param res
792
+ * @param code
793
+ */
794
+ declare const isValidPageRes: (res: PageRes, code?: number) => boolean;
795
+
796
+ export { type Dict, type MaybeArray, type NullOrUndefinable, type Nullable, type Numeric, type PageReq, type PageRes, type PageResData, type PartialBy, type Res, type UnDef, type Undefinable, type VK, attachFmt, camel2Kebab, camel2Pascal, camel2Snake, camel2Title, checkImg, currencyFmt, dateDuration, dateFmt, filterObj, fixiOSInputAutoZoomIn, getBaseAttachUrl, getCodeOfDate, getCodeOfHour, getCodeOfMonth, getHostEnv, getVariableType, hideBankCard, hideCardNo, hideEmail, hideFirstName, hideHead, hideMiddle, hideName, hidePhone, hideSurname, hideTail, hideThird, inBrowser, isArrStr, isArray, isBigInt, isBlob, isBoolean, isDate, isDef, isEmail, isEmpty, isError, isFile, isFunction, isIdCard, isJSONStr, isMap, isNull, isNumber, isNumeric, isObject, isPhone, isPromise, isRegExp, isSet, isString, isSymbol, isTel, isURL, isUSCI, isUndefined, isValidArrRes, isValidFileType, isValidKey, isValidPageRes, isValidRes, isValidResCode, isWeakMap, isWeakSet, jClear, jDebug, jError, jGroup, jGroupC, jGroupE, jInfo, jLog, jLogDedupe, jLogOnce, jTime, jTimeEnd, jWarn, kebab2Camel, kebab2Pascal, kebab2Snake, kebab2Title, naturalSort, naturalSortBy, nonASCII, parseToJSON, pascal2Camel, pascal2Kebab, pascal2Snake, pascal2Title, recoverFile, replacer, resUrl, reviver, setBaseAttachUrl, snake2Camel, snake2Kebab, snake2Pascal, snake2Title, title2Camel, title2Kebab, title2Pascal, title2Snake, toThousands, userAgent, waitTime };
package/dist/index.d.ts CHANGED
@@ -7,6 +7,59 @@ import { ConfigType } from 'dayjs';
7
7
  export { Dayjs, default as dayjs } from 'dayjs';
8
8
  export { detect } from 'detect-browser';
9
9
 
10
+ /**
11
+ * 数字或字符串
12
+ */
13
+ type Numeric = number | string;
14
+ /**
15
+ * 可 Null
16
+ */
17
+ type Nullable<T> = T | null;
18
+ /**
19
+ * 可 Undefined
20
+ */
21
+ type Undefinable<T> = T | undefined;
22
+ /**
23
+ * 可 Null 或 Undefined
24
+ */
25
+ type NullOrUndefinable<T> = Nullable<Undefinable<T>>;
26
+ /**
27
+ * alias for NullOrUndefinable
28
+ */
29
+ type UnDef<T> = NullOrUndefinable<T>;
30
+ /**
31
+ * 请求结果
32
+ */
33
+ type Res<T = any> = Service.Response<T>;
34
+ /**
35
+ * 分页请求结果数据
36
+ */
37
+ type PageResData<T = any> = Service.PageResponseData<T>;
38
+ /**
39
+ * 分页请求结果
40
+ */
41
+ type PageRes<T = any> = Service.PageResponse<T>;
42
+ /**
43
+ * 分页请求参数
44
+ */
45
+ type PageReq<T extends Record<string, any> = NonNullable<unknown>> = Service.PageRequestParams<T>;
46
+ /**
47
+ * 可能是数组
48
+ */
49
+ type MaybeArray<T = any> = T | Array<T>;
50
+ /**
51
+ * 枚举键值对
52
+ */
53
+ type VK<T = string> = Record<string | number, T>;
54
+ /**
55
+ * 字典
56
+ */
57
+ type Dict<T = string> = Record<string, T>;
58
+ /**
59
+ * 使某键可选
60
+ */
61
+ type PartialBy<T, K extends keyof T> = Omit<T, K> & Partial<Pick<T, K>>;
62
+
10
63
  /**
11
64
  * snake2Kebab
12
65
  * @param {string} str 字符串
@@ -217,43 +270,6 @@ declare const jLogDedupe: (...args: any[]) => void;
217
270
  */
218
271
  declare const jLogOnce: (...args: any[]) => void;
219
272
 
220
- /**
221
- * 数字或字符串
222
- */
223
- declare type Numeric = number | string;
224
- /**
225
- * 可 Null
226
- */
227
- declare type Nullable<T> = T | null;
228
- /**
229
- * 可 Undefined
230
- */
231
- declare type Undefinable<T> = T | undefined;
232
- /**
233
- * 可 Null 或 Undefined
234
- */
235
- declare type NullOrUndefinable<T> = Nullable<Undefinable<T>>;
236
- /**
237
- * alias for NullOrUndefinable
238
- */
239
- declare type UnDef<T> = NullOrUndefinable<T>;
240
- /**
241
- * 请求结果
242
- */
243
- declare type Res<T = any> = Service.Response<T>;
244
- /**
245
- * 分页请求结果数据
246
- */
247
- declare type PageResData<T = any> = Service.PageResponseData<T>;
248
- /**
249
- * 分页请求结果
250
- */
251
- declare type PageRes<T = any> = Service.PageResponse<T>;
252
- /**
253
- * 可能是数组
254
- */
255
- declare type MaybeArray<T = any> = T | Array<T>;
256
-
257
273
  /**
258
274
  * 隐藏中间部分
259
275
  * @param {string} str 需要隐藏的字符串
@@ -392,6 +408,16 @@ declare const getCodeOfDate: () => number;
392
408
  */
393
409
  declare const getCodeOfMonth: () => number;
394
410
 
411
+ /**
412
+ * 设置文件基本路径
413
+ * @param baseUrl
414
+ */
415
+ declare function setBaseAttachUrl(baseUrl: string): void;
416
+ /**
417
+ * 获取文件基本路径
418
+ */
419
+ declare function getBaseAttachUrl(): string;
420
+
395
421
  /**
396
422
  * Json字符串转对象
397
423
  * @param str
@@ -420,13 +446,25 @@ declare const filterObj: (obj: Record<string, any>, keys: string[], reverse?: bo
420
446
  [k: string]: any;
421
447
  };
422
448
 
449
+ /**
450
+ * 千位分隔符
451
+ * @param num
452
+ */
453
+ declare const toThousands: (num: number) => string | undefined;
454
+ /**
455
+ * 货币格式化
456
+ * @param {number | string | bigint} currency - 金额
457
+ * @param {number} [maximumFractionDigits] - 小数位数
458
+ */
459
+ declare const currencyFmt: (currency: UnDef<Numeric | bigint>, maximumFractionDigits?: number) => string;
460
+
423
461
  /**
424
462
  * 格式化时间
425
463
  * @param {import('dayjs').ConfigType} date 时间
426
464
  * @param {string} format 格式
427
465
  * @returns {string} 格式化后的时间
428
466
  */
429
- declare const dateFmt: (date: ConfigType, format?: string | 'date' | 'datetime') => string;
467
+ declare const dateFmt: (date: ConfigType, format?: string | "date" | "datetime") => string;
430
468
  /**
431
469
  * 格式化时间间隔
432
470
  * @param {import('dayjs').ConfigType} start 开始时间
@@ -434,28 +472,6 @@ declare const dateFmt: (date: ConfigType, format?: string | 'date' | 'datetime')
434
472
  */
435
473
  declare const dateDuration: (start: ConfigType, end: ConfigType) => string;
436
474
 
437
- /**
438
- * 设置文件基本路径
439
- * @param baseUrl
440
- */
441
- declare function setBaseAttachUrl(baseUrl: string): void;
442
- /**
443
- * 获取文件基本路径
444
- */
445
- declare function getBaseAttachUrl(): string;
446
-
447
- /**
448
- * 千位分隔符
449
- * @param num
450
- */
451
- declare const toThousands: (num: number) => string | undefined;
452
- /**
453
- * 货币格式化
454
- * @param {number | string | bigint} currency - 金额
455
- * @param {number} [maximumFractionDigits] - 小数位数
456
- */
457
- declare const currencyFmt: (currency: UnDef<Numeric | bigint>, maximumFractionDigits?: number) => string;
458
-
459
475
  type VantUploadFileStatus = '' | 'uploading' | 'done' | 'failed'
460
476
  type AntdUploadFileStatus = 'removed' | 'uploading' | 'done' | 'error'
461
477
  type ElementPlusUploadFileStatus = 'ready' | 'uploading' | 'success' | 'fail'
@@ -504,16 +520,16 @@ declare const recoverFile: (resource: Resource) => {
504
520
  group: string;
505
521
  id: string;
506
522
  name: string;
507
- size?: number | undefined;
508
- uid?: string | undefined;
509
- objectUrl?: string | undefined;
510
- isImage?: boolean | undefined;
511
- message?: string | undefined;
512
- deletable?: boolean | undefined;
513
- reupload?: boolean | undefined;
514
- fileName?: string | undefined;
515
- thumbUrl?: string | undefined;
516
- percentage?: number | undefined;
523
+ size?: number;
524
+ uid?: string;
525
+ objectUrl?: string;
526
+ isImage?: boolean;
527
+ message?: string;
528
+ deletable?: boolean;
529
+ reupload?: boolean;
530
+ fileName?: string;
531
+ thumbUrl?: string;
532
+ percentage?: number;
517
533
  };
518
534
  /**
519
535
  * 附件格式
@@ -528,18 +544,32 @@ declare const attachFmt: (data: UnDef<MaybeArray<Resource>> | string) => {
528
544
  group: string;
529
545
  id: string;
530
546
  name: string;
531
- size?: number | undefined;
532
- uid?: string | undefined;
533
- objectUrl?: string | undefined;
534
- isImage?: boolean | undefined;
535
- message?: string | undefined;
536
- deletable?: boolean | undefined;
537
- reupload?: boolean | undefined;
538
- fileName?: string | undefined;
539
- thumbUrl?: string | undefined;
540
- percentage?: number | undefined;
547
+ size?: number;
548
+ uid?: string;
549
+ objectUrl?: string;
550
+ isImage?: boolean;
551
+ message?: string;
552
+ deletable?: boolean;
553
+ reupload?: boolean;
554
+ fileName?: string;
555
+ thumbUrl?: string;
556
+ percentage?: number;
541
557
  }[];
542
558
 
559
+ /**
560
+ * 自然排序
561
+ * @param {UnDef<string>[] | UnDef<number>[]} arr - 数字或字符串数组
562
+ * @returns {UnDef<string>[] | UnDef<number>[]} - 排序后的数组
563
+ */
564
+ declare const naturalSort: (arr: UnDef<string>[] | UnDef<number>[]) => UnDef<string>[] | UnDef<number>[];
565
+ /**
566
+ * 根据 key 自然排序
567
+ * @param arr - 数组
568
+ * @param {string} key - 键名
569
+ * @returns {any[]} - 排序后的数组
570
+ */
571
+ declare const naturalSortBy: <T extends Record<string, UnDef<Numeric>>>(arr: T[], key: keyof T) => T[];
572
+
543
573
  /**
544
574
  * 检测变量类型
545
575
  * @param {any} val 检测的目标
@@ -589,7 +619,7 @@ declare const isObject: (val: any) => val is Record<any, any>;
589
619
  * 是否是数组
590
620
  * @param {any} val 检测的目标
591
621
  */
592
- declare const isArray: (val: any) => val is any[];
622
+ declare const isArray: (val: any) => val is Array<any>;
593
623
  /**
594
624
  * 是否是函数,但也有可能是Class
595
625
  * @param {any} val 检测的目标
@@ -677,7 +707,7 @@ declare const isArrStr: (str: UnDef<string>) => boolean;
677
707
  * ```
678
708
  * @returns {boolean} boolean
679
709
  */
680
- declare const isValidKey: (key: string | number | symbol, object: object) => key is never;
710
+ declare const isValidKey: (key: string | number | symbol, object: object) => key is keyof typeof object;
681
711
  /**
682
712
  * 是否是空值/空数组/空对象 null undefined '' [] {} Set Map
683
713
  * @param val
@@ -685,30 +715,15 @@ declare const isValidKey: (key: string | number | symbol, object: object) => key
685
715
  declare const isEmpty: (val: UnDef<Numeric | boolean | Record<any, any> | Array<any> | Set<any> | Map<any, any>>) => boolean;
686
716
 
687
717
  /**
688
- * 校验接口返回code
689
- * @param res
690
- * @param code
691
- */
692
- declare const isValidResCode: (res: Res, code?: number) => boolean;
693
- /**
694
- * 校验接口返回内容
695
- * @param res
696
- * @param code
697
- */
698
- declare const isValidRes: (res: Res, code?: number) => boolean;
699
- /**
700
- * 校验接口数组返回内容
701
- * @param res
702
- * @param code
703
- */
704
- declare const isValidArrRes: (res: Res<any[]>, code?: number) => boolean;
705
- /**
706
- * 校验接口分页返回内容
707
- * @param res
708
- * @param code
718
+ * 是否是[统一社会信用代码](https://zh.wikipedia.org/zh-cn/%E7%BB%9F%E4%B8%80%E7%A4%BE%E4%BC%9A%E4%BF%A1%E7%94%A8%E4%BB%A3%E7%A0%81)
719
+ * @example
720
+ * ```ts
721
+ * isUSCI('91350100M000100Y43') // true
722
+ * ```
723
+ * @param {UnDef<string>} val - 待校验的值
724
+ * @returns {boolean} 是否是统一社会信用代码
709
725
  */
710
- declare const isValidPageRes: (res: PageRes, code?: number) => boolean;
711
-
726
+ declare const isUSCI: (val: UnDef<string>) => boolean;
712
727
  /**
713
728
  * 是否是中国手机号
714
729
  * @param val
@@ -753,4 +768,29 @@ declare const nonASCII: (text: string) => boolean;
753
768
  */
754
769
  declare const isValidFileType: (file: File, type: string) => boolean;
755
770
 
756
- export { type MaybeArray, type NullOrUndefinable, type Nullable, type Numeric, type PageRes, type PageResData, type Res, type UnDef, type Undefinable, attachFmt, camel2Kebab, camel2Pascal, camel2Snake, camel2Title, checkImg, currencyFmt, dateDuration, dateFmt, filterObj, fixiOSInputAutoZoomIn, getBaseAttachUrl, getCodeOfDate, getCodeOfHour, getCodeOfMonth, getHostEnv, getVariableType, hideBankCard, hideCardNo, hideEmail, hideFirstName, hideHead, hideMiddle, hideName, hidePhone, hideSurname, hideTail, hideThird, inBrowser, isArrStr, isArray, isBigInt, isBlob, isBoolean, isDate, isDef, isEmail, isEmpty, isError, isFile, isFunction, isIdCard, isJSONStr, isMap, isNull, isNumber, isNumeric, isObject, isPhone, isPromise, isRegExp, isSet, isString, isSymbol, isTel, isURL, isUndefined, isValidArrRes, isValidFileType, isValidKey, isValidPageRes, isValidRes, isValidResCode, isWeakMap, isWeakSet, jClear, jDebug, jError, jGroup, jGroupC, jGroupE, jInfo, jLog, jLogDedupe, jLogOnce, jTime, jTimeEnd, jWarn, kebab2Camel, kebab2Pascal, kebab2Snake, kebab2Title, nonASCII, parseToJSON, pascal2Camel, pascal2Kebab, pascal2Snake, pascal2Title, recoverFile, replacer, resUrl, reviver, setBaseAttachUrl, snake2Camel, snake2Kebab, snake2Pascal, snake2Title, title2Camel, title2Kebab, title2Pascal, title2Snake, toThousands, userAgent, waitTime };
771
+ /**
772
+ * 校验接口返回code
773
+ * @param res
774
+ * @param code
775
+ */
776
+ declare const isValidResCode: (res: Res, code?: number) => boolean;
777
+ /**
778
+ * 校验接口返回内容
779
+ * @param res
780
+ * @param code
781
+ */
782
+ declare const isValidRes: (res: Res, code?: number) => boolean;
783
+ /**
784
+ * 校验接口数组返回内容
785
+ * @param res
786
+ * @param code
787
+ */
788
+ declare const isValidArrRes: (res: Res<any[]>, code?: number) => boolean;
789
+ /**
790
+ * 校验接口分页返回内容
791
+ * @param res
792
+ * @param code
793
+ */
794
+ declare const isValidPageRes: (res: PageRes, code?: number) => boolean;
795
+
796
+ export { type Dict, type MaybeArray, type NullOrUndefinable, type Nullable, type Numeric, type PageReq, type PageRes, type PageResData, type PartialBy, type Res, type UnDef, type Undefinable, type VK, attachFmt, camel2Kebab, camel2Pascal, camel2Snake, camel2Title, checkImg, currencyFmt, dateDuration, dateFmt, filterObj, fixiOSInputAutoZoomIn, getBaseAttachUrl, getCodeOfDate, getCodeOfHour, getCodeOfMonth, getHostEnv, getVariableType, hideBankCard, hideCardNo, hideEmail, hideFirstName, hideHead, hideMiddle, hideName, hidePhone, hideSurname, hideTail, hideThird, inBrowser, isArrStr, isArray, isBigInt, isBlob, isBoolean, isDate, isDef, isEmail, isEmpty, isError, isFile, isFunction, isIdCard, isJSONStr, isMap, isNull, isNumber, isNumeric, isObject, isPhone, isPromise, isRegExp, isSet, isString, isSymbol, isTel, isURL, isUSCI, isUndefined, isValidArrRes, isValidFileType, isValidKey, isValidPageRes, isValidRes, isValidResCode, isWeakMap, isWeakSet, jClear, jDebug, jError, jGroup, jGroupC, jGroupE, jInfo, jLog, jLogDedupe, jLogOnce, jTime, jTimeEnd, jWarn, kebab2Camel, kebab2Pascal, kebab2Snake, kebab2Title, naturalSort, naturalSortBy, nonASCII, parseToJSON, pascal2Camel, pascal2Kebab, pascal2Snake, pascal2Title, recoverFile, replacer, resUrl, reviver, setBaseAttachUrl, snake2Camel, snake2Kebab, snake2Pascal, snake2Title, title2Camel, title2Kebab, title2Pascal, title2Snake, toThousands, userAgent, waitTime };