@ivujs/i-utils 1.1.18 → 2.1.0

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.
Files changed (142) hide show
  1. package/README.md +122 -58
  2. package/dist/cjs/ID-card/index.cjs +95 -0
  3. package/dist/cjs/array/index.cjs +476 -0
  4. package/dist/cjs/clipboard/index.cjs +132 -0
  5. package/dist/cjs/color/index.cjs +207 -0
  6. package/dist/cjs/constants/date.cjs +178 -0
  7. package/dist/cjs/constants/id-card.cjs +52 -0
  8. package/dist/cjs/constants/keycode.cjs +117 -0
  9. package/dist/cjs/constants/lang.cjs +13 -0
  10. package/dist/cjs/constants/math.cjs +13 -0
  11. package/dist/cjs/constants/regexp.cjs +53 -0
  12. package/dist/cjs/constants/sort.cjs +15 -0
  13. package/dist/cjs/cookie/index.cjs +73 -0
  14. package/dist/cjs/crypto/base64/base64.cjs +540 -0
  15. package/dist/cjs/crypto/base64/index.cjs +82 -0
  16. package/dist/cjs/crypto/md5/index.cjs +49 -0
  17. package/dist/cjs/crypto/md5/md5.cjs +351 -0
  18. package/dist/cjs/crypto/sha256/index.cjs +95 -0
  19. package/dist/cjs/crypto/sha256/sha256.cjs +557 -0
  20. package/dist/cjs/crypto/sm3/index.cjs +27 -0
  21. package/dist/cjs/crypto/sm3/sm3.cjs +200 -0
  22. package/dist/cjs/crypto/sm4/index.cjs +101 -0
  23. package/dist/cjs/crypto/sm4/sm4.cjs +498 -0
  24. package/dist/cjs/date/index.cjs +1310 -0
  25. package/dist/cjs/desensitized/index.cjs +78 -0
  26. package/dist/cjs/device/index.cjs +154 -0
  27. package/dist/cjs/dom/index.cjs +132 -0
  28. package/dist/cjs/file/index.cjs +343 -0
  29. package/dist/cjs/function/index.cjs +72 -0
  30. package/dist/cjs/id/index.cjs +6 -2
  31. package/dist/cjs/index.cjs +383 -7
  32. package/dist/cjs/keycode/index.cjs +30 -0
  33. package/dist/cjs/math/index.cjs +310 -0
  34. package/dist/cjs/number/index.cjs +34 -0
  35. package/dist/cjs/object/index.cjs +319 -0
  36. package/dist/cjs/pagination/index.cjs +146 -0
  37. package/dist/cjs/random/index.cjs +27 -0
  38. package/dist/cjs/regexp/index.cjs +103 -0
  39. package/dist/cjs/storage/index.cjs +14 -0
  40. package/dist/cjs/storage/localStorage.cjs +37 -0
  41. package/dist/cjs/storage/sessionStorage.cjs +37 -0
  42. package/dist/cjs/string/index.cjs +361 -0
  43. package/dist/cjs/url/index.cjs +261 -0
  44. package/dist/cjs/validate/index.cjs +484 -0
  45. package/dist/es/ID-card/index.d.ts +36 -0
  46. package/dist/es/ID-card/index.mjs +89 -0
  47. package/dist/es/array/index.d.ts +209 -0
  48. package/dist/es/array/index.mjs +447 -0
  49. package/dist/es/clipboard/index.d.ts +32 -0
  50. package/dist/es/clipboard/index.mjs +126 -0
  51. package/dist/es/color/index.d.ts +55 -0
  52. package/dist/es/color/index.mjs +197 -0
  53. package/dist/es/constants/date.d.ts +4 -0
  54. package/dist/es/constants/date.mjs +176 -0
  55. package/dist/es/constants/id-card.d.ts +4 -0
  56. package/dist/es/constants/id-card.mjs +50 -0
  57. package/dist/es/constants/index.d.ts +11 -0
  58. package/dist/es/constants/keycode.d.ts +1 -0
  59. package/dist/es/constants/keycode.mjs +115 -0
  60. package/dist/es/constants/lang.d.ts +4 -0
  61. package/dist/es/constants/lang.mjs +11 -0
  62. package/dist/es/constants/math.d.ts +4 -0
  63. package/dist/es/constants/math.mjs +11 -0
  64. package/dist/es/constants/regexp.d.ts +4 -0
  65. package/dist/es/constants/regexp.mjs +51 -0
  66. package/dist/es/constants/sort.d.ts +4 -0
  67. package/dist/es/constants/sort.mjs +13 -0
  68. package/dist/es/cookie/index.d.ts +29 -0
  69. package/dist/es/cookie/index.mjs +67 -0
  70. package/dist/es/crypto/base64/base64.d.ts +8 -0
  71. package/dist/es/crypto/base64/base64.mjs +531 -0
  72. package/dist/es/crypto/base64/index.d.ts +53 -0
  73. package/dist/es/crypto/base64/index.mjs +73 -0
  74. package/dist/es/crypto/index.d.ts +8 -0
  75. package/dist/es/crypto/md5/index.d.ts +26 -0
  76. package/dist/es/crypto/md5/index.mjs +44 -0
  77. package/dist/es/crypto/md5/md5.d.ts +11 -0
  78. package/dist/es/crypto/md5/md5.mjs +349 -0
  79. package/dist/es/crypto/sha256/index.d.ts +52 -0
  80. package/dist/es/crypto/sha256/index.mjs +86 -0
  81. package/dist/es/crypto/sha256/sha256.d.ts +82 -0
  82. package/dist/es/crypto/sha256/sha256.mjs +548 -0
  83. package/dist/es/crypto/sm3/index.d.ts +13 -0
  84. package/dist/es/crypto/sm3/index.mjs +24 -0
  85. package/dist/es/crypto/sm3/sm3.d.ts +3 -0
  86. package/dist/es/crypto/sm3/sm3.mjs +197 -0
  87. package/dist/es/crypto/sm4/index.d.ts +56 -0
  88. package/dist/es/crypto/sm4/index.mjs +95 -0
  89. package/dist/es/crypto/sm4/sm4.d.ts +48 -0
  90. package/dist/es/crypto/sm4/sm4.mjs +490 -0
  91. package/dist/es/date/index.d.ts +608 -0
  92. package/dist/es/date/index.mjs +1222 -0
  93. package/dist/es/desensitized/index.d.ts +41 -0
  94. package/dist/es/desensitized/index.mjs +72 -0
  95. package/dist/es/device/index.d.ts +73 -0
  96. package/dist/es/device/index.mjs +140 -0
  97. package/dist/es/dom/index.d.ts +60 -0
  98. package/dist/es/dom/index.mjs +122 -0
  99. package/dist/es/file/index.d.ts +93 -0
  100. package/dist/es/file/index.mjs +327 -0
  101. package/dist/es/function/index.d.ts +26 -0
  102. package/dist/es/function/index.mjs +68 -0
  103. package/dist/es/id/index.d.ts +3 -0
  104. package/dist/es/id/index.mjs +6 -2
  105. package/dist/es/index.d.ts +26 -2
  106. package/dist/es/index.mjs +40 -4
  107. package/dist/es/keycode/index.d.ts +12 -0
  108. package/dist/es/keycode/index.mjs +27 -0
  109. package/dist/es/math/index.d.ts +66 -0
  110. package/dist/es/math/index.mjs +300 -0
  111. package/dist/es/number/index.d.ts +14 -0
  112. package/dist/es/number/index.mjs +31 -0
  113. package/dist/es/object/index.d.ts +84 -0
  114. package/dist/es/object/index.mjs +306 -0
  115. package/dist/es/pagination/index.d.ts +67 -0
  116. package/dist/es/pagination/index.mjs +140 -0
  117. package/dist/es/random/index.d.ts +18 -0
  118. package/dist/es/random/index.mjs +24 -0
  119. package/dist/es/regexp/index.d.ts +63 -0
  120. package/dist/es/regexp/index.mjs +92 -0
  121. package/dist/es/storage/index.d.ts +13 -0
  122. package/dist/es/storage/index.mjs +12 -0
  123. package/dist/es/storage/localStorage.d.ts +21 -0
  124. package/dist/es/storage/localStorage.mjs +32 -0
  125. package/dist/es/storage/sessionStorage.d.ts +21 -0
  126. package/dist/es/storage/sessionStorage.mjs +32 -0
  127. package/dist/es/string/index.d.ts +124 -0
  128. package/dist/es/string/index.mjs +342 -0
  129. package/dist/es/url/index.d.ts +118 -0
  130. package/dist/es/url/index.mjs +243 -0
  131. package/dist/es/validate/index.d.ts +231 -0
  132. package/dist/es/validate/index.mjs +447 -0
  133. package/dist/index.d.ts +2394 -2
  134. package/dist/lib/index.full.umd.js +8059 -29
  135. package/dist/lib/index.full.umd.min.js +2 -2
  136. package/dist/lib/index.full.umd.min.js.map +1 -1
  137. package/dist/resolver/auto-imports.cjs +345 -2
  138. package/dist/resolver/auto-imports.mjs +345 -2
  139. package/dist/resolver/index.cjs +1 -2
  140. package/dist/resolver/index.d.ts +1 -1
  141. package/dist/resolver/index.mjs +1 -2
  142. package/package.json +16 -7
@@ -0,0 +1,300 @@
1
+ import { isNaN } from '../validate/index.mjs';
2
+ import { MATH } from '../constants/math.mjs';
3
+
4
+ /**
5
+ * @module 数学
6
+ */
7
+ /* 数字计算 */
8
+ /**
9
+ * 两个数字相加
10
+ * @param {string|number} arg1 第一个数字
11
+ * @param {string|number} arg2 第二个数字
12
+ * @returns {number} 返回计算后的数字
13
+ */
14
+ function add(arg1, arg2) {
15
+ let r1, r2;
16
+ try {
17
+ r1 = arg1.toString().split(".")[1].length;
18
+ }
19
+ catch (e) {
20
+ r1 = 0;
21
+ }
22
+ try {
23
+ r2 = arg2.toString().split(".")[1].length;
24
+ }
25
+ catch (e) {
26
+ r2 = 0;
27
+ }
28
+ const m = Math.pow(10, Math.max(r1, r2));
29
+ return (Number(arg1) * m + Number(arg2) * m) / m;
30
+ }
31
+ /**
32
+ * 两个数字相减
33
+ * @param {string|number} arg1 第一个数字
34
+ * @param {string|number} arg2 第二个数字
35
+ * @returns {number} 返回计算后的数字
36
+ */
37
+ function subtract(arg1, arg2) {
38
+ let r1, r2, m, n;
39
+ try {
40
+ r1 = arg1.toString().split(".")[1].length;
41
+ }
42
+ catch (e) {
43
+ r1 = 0;
44
+ }
45
+ try {
46
+ r2 = arg2.toString().split(".")[1].length;
47
+ }
48
+ catch (e) {
49
+ r2 = 0;
50
+ }
51
+ m = Math.pow(10, Math.max(r1, r2));
52
+ n = r1 >= r2 ? r1 : r2;
53
+ return ((Number(arg1) * m - Number(arg2) * m) / m).toFixed(n);
54
+ }
55
+ /**
56
+ * 两个数字相乘
57
+ * @param {string|number} arg1 第一个数字
58
+ * @param {string|number} arg2 第二个数字
59
+ * @returns 返回计算后的数字
60
+ */
61
+ function multiply(arg1, arg2) {
62
+ let m = 0;
63
+ const s1 = arg1.toString();
64
+ const s2 = arg2.toString();
65
+ try {
66
+ m += s1.split(".")[1].length;
67
+ }
68
+ catch (e) { }
69
+ try {
70
+ m += s2.split(".")[1].length;
71
+ }
72
+ catch (e) { }
73
+ return (Number(s1.replace(".", "")) * Number(s2.replace(".", ""))) / Math.pow(10, m);
74
+ }
75
+ /**
76
+ * 两个数字相除
77
+ * @param {string|number} arg1 第一个数字
78
+ * @param {string|number} arg2 第二个数字
79
+ * @returns {number} 返回计算后的数字
80
+ */
81
+ function divide(arg1, arg2) {
82
+ let t1 = 0, t2 = 0;
83
+ try {
84
+ t1 = arg1.toString().split(".")[1].length;
85
+ }
86
+ catch (e) { }
87
+ try {
88
+ t2 = arg2.toString().split(".")[1].length;
89
+ }
90
+ catch (e) { }
91
+ const r1 = Number(arg1.toString().replace(".", ""));
92
+ const r2 = Number(arg2.toString().replace(".", ""));
93
+ return (r1 / r2) * Math.pow(10, t2 - t1);
94
+ }
95
+ /**
96
+ * 两个数字取模
97
+ * @param {string|number} arg1 第一个数字
98
+ * @param {string|number} arg2 第二个数字
99
+ * @returns {number} 返回计算后的数字
100
+ */
101
+ function modulo(arg1, arg2) {
102
+ let t1 = 0, t2 = 0, d = 0;
103
+ try {
104
+ t1 = arg1.toString().split(".")[1].length;
105
+ }
106
+ catch (e) { }
107
+ try {
108
+ t2 = arg2.toString().split(".")[1].length;
109
+ }
110
+ catch (e) { }
111
+ d = Math.pow(10, Math.max(t1, t2));
112
+ return (Math.round(Number(arg1) * d) % Math.round(Number(arg2) * d)) / d;
113
+ }
114
+ /**
115
+ * 最大公约数
116
+ * @param {string|number} arg1 第一个数字
117
+ * @param {string|number} arg2 第二个数字
118
+ * @returns {number} 返回计算后的数字
119
+ */
120
+ function gcd(arg1, arg2) {
121
+ let a = Math.abs(Number(arg1));
122
+ let b = Math.abs(Number(arg2));
123
+ while (b !== 0) {
124
+ const temp = b;
125
+ b = a % b;
126
+ a = temp;
127
+ }
128
+ return a;
129
+ }
130
+ /**
131
+ * 最小公倍数
132
+ * @param {string|number} arg1 第一个数字
133
+ * @param {string|number} arg2 第二个数字
134
+ * @returns {number} 返回计算后的数字
135
+ */
136
+ function scm(arg1, arg2) {
137
+ const a = Number(arg1);
138
+ const b = Number(arg2);
139
+ const absA = Math.abs(a);
140
+ const absB = Math.abs(b);
141
+ if (absA === 0 || absB === 0) {
142
+ return 0;
143
+ }
144
+ return (absA * absB) / gcd(absA, absB);
145
+ }
146
+ /* 数字精度 */
147
+ /**
148
+ * 强制保留小数位数
149
+ * @description 默认保留两位小数,解决原生的toFixed()会五舍六入的问题
150
+ * @param {string|number} num 数字
151
+ * @param {number} decimals 保留小数的位数,默认2位
152
+ * @param {number} mode 保留小数模式
153
+ * @returns {string} 返回保留后的数字字符串
154
+ */
155
+ function toFixed(num, decimals = 2, mode = MATH.ROUND) {
156
+ // 四舍五入
157
+ if (mode === MATH.ROUND) {
158
+ return _toFixedRound(num, decimals);
159
+ }
160
+ // 向下舍出
161
+ if (mode === MATH.ROUND_FLOOR) {
162
+ return _toFixedFloor(num, decimals);
163
+ }
164
+ }
165
+ /**
166
+ * 尽可能保留小数位数
167
+ * @param {string|number} num 数字
168
+ * @param {number} decimals 保留小数的位数,默认2位
169
+ * @param {number} mode 保留小数模式
170
+ * @returns {number} 返回保留后的数字
171
+ */
172
+ function toDecimal(num, decimals = 2, mode = MATH.ROUND) {
173
+ // 四舍五入
174
+ if (mode === MATH.ROUND) {
175
+ return _toDecimalRound(num, decimals);
176
+ }
177
+ // 向下舍出
178
+ if (mode === MATH.ROUND_FLOOR) {
179
+ return _toDecimalFloor(num, decimals);
180
+ }
181
+ }
182
+ /* 内部函数 */
183
+ /**
184
+ * 四舍五入,强制保留小数位数
185
+ * @description 默认保留两位小数,此方法解决原生的toFixed()会五舍六入的问题
186
+ * @param {string|number} num 数字
187
+ * @param {number} decimals 保留小数的位数,默认2位
188
+ * @returns {string} 返回字符串的数字
189
+ */
190
+ function _toFixedRound(num, decimals = 2) {
191
+ if (isNaN(Number(num))) {
192
+ // num可能是字符串,先转数字再判断NaN
193
+ return "--";
194
+ }
195
+ let s = String(num);
196
+ if (!decimals)
197
+ decimals = 0;
198
+ if (s.indexOf(".") === -1)
199
+ s += ".";
200
+ s += new Array(decimals + 1).join("0");
201
+ // 正则模板字符串拼接,避免手动拼接字符串的转义问题
202
+ const reg = new RegExp(`^(-|\\+)?(\\d+(\\.\\d{0,${decimals + 1}})?)\\d*$`);
203
+ if (reg.test(s)) {
204
+ let s1 = "0" + RegExp.$2, b = true;
205
+ // 1. 把外层的数字变量 a 改名,避免和内层数组冲突
206
+ const decimalLength = RegExp.$3.length;
207
+ const pm = RegExp.$1;
208
+ if (decimalLength === decimals + 2) {
209
+ // 2. 内层数组用新变量名 digitArr,明确类型为 string[]
210
+ const digitArr = s1.match(/\d/g);
211
+ if (parseInt(digitArr[digitArr.length - 1]) > 4) {
212
+ for (let i = digitArr.length - 2; i >= 0; i--) {
213
+ // 3. 确保赋值为字符串类型
214
+ digitArr[i] = (parseInt(digitArr[i]) + 1).toString();
215
+ if (digitArr[i] === "10") {
216
+ digitArr[i] = "0";
217
+ b = i !== 1;
218
+ }
219
+ else
220
+ break;
221
+ }
222
+ }
223
+ s1 = digitArr.join("").replace(new RegExp(`(\\d+)(\\d{${decimals}})\\d$`), "$1.$2");
224
+ }
225
+ if (b)
226
+ s1 = s1.substr(1);
227
+ return (pm + s1).replace(/\.$/, "");
228
+ }
229
+ return String(num);
230
+ }
231
+ /**
232
+ * 向下舍出,强制保留小数位数
233
+ * @description 默认保留两位小数,此方法相当于强制截取小数位数
234
+ * @param {string|number} num 数字
235
+ * @param {number} decimals 保留小数的位数,默认2位
236
+ * @returns {number} 返回字符串的数字
237
+ */
238
+ function _toFixedFloor(num, decimals = 2) {
239
+ // 修复1:num可能是字符串,先转数字再判断NaN
240
+ const numVal = Number(num);
241
+ if (isNaN(numVal)) {
242
+ return "--";
243
+ }
244
+ // 默认为保留的小数点后两位
245
+ const dec = Math.max(0, Math.floor(decimals)); // 确保小数位数为非负整数
246
+ const tempNumStr = String(numVal); // 提前转字符串,避免重复转换
247
+ const pointIndex = tempNumStr.indexOf("."); // :去掉+1,直接获取小数点位置
248
+ // 获取小数点后的个数(需要保证有小数位)
249
+ const pointCount = pointIndex > -1 ? tempNumStr.length - pointIndex - 1 : 0;
250
+ // 源数据为整数或者小数点后面小于decimals位的作补零处理
251
+ if (pointIndex === -1 || pointCount <= dec) {
252
+ // pointIndex === -1 表示无小数点
253
+ let tempNumA = tempNumStr; // 统一为字符串类型,避免类型混淆
254
+ if (pointIndex === -1) {
255
+ tempNumA = `${tempNumA}.`;
256
+ // 补零到指定小数位
257
+ for (let index = 0; index < dec; index++) {
258
+ tempNumA = `${tempNumA}0`;
259
+ }
260
+ }
261
+ else {
262
+ // 补零到指定小数位
263
+ for (let index = 0; index < dec - pointCount; index++) {
264
+ tempNumA = `${tempNumA}0`;
265
+ }
266
+ }
267
+ return tempNumA;
268
+ }
269
+ // 截取当前数据到小数点后decimals位
270
+ const [integerPart, decimalPart] = tempNumStr.split(".");
271
+ return `${integerPart}.${decimalPart.substring(0, dec)}`;
272
+ }
273
+ /**
274
+ * 四舍五入,尽可能保留小数
275
+ * @param {string|number} num 数字
276
+ * @param {number} decimals 保留小数的位数,默认2位
277
+ * @returns {number} 返回保留后的数字
278
+ */
279
+ function _toDecimalRound(num, decimals = 2) {
280
+ if (isNaN(Number(num))) {
281
+ return "--";
282
+ }
283
+ const n = Math.pow(10, decimals);
284
+ return Math.round(Number(num) * n) / n;
285
+ }
286
+ /**
287
+ * 向下舍入,尽可能保留小数
288
+ * @param {string|number} num 数字
289
+ * @param {number} decimals 保留小数的位数,默认2位
290
+ * @returns {number} 返回保留后的数字
291
+ */
292
+ function _toDecimalFloor(num, decimals = 2) {
293
+ if (isNaN(Number(num))) {
294
+ return "--";
295
+ }
296
+ const n = Math.pow(10, decimals);
297
+ return Math.floor(Number(num) * n) / n;
298
+ }
299
+
300
+ export { add, divide, gcd, modulo, multiply, scm, subtract, toDecimal, toFixed };
@@ -0,0 +1,14 @@
1
+ /**
2
+ * 转为数字类型
3
+ * @description 解决部分浏览器在转换 '08','09'等是0开头时被默认转8进制问题
4
+ * @param {string|number} value 转换的值
5
+ * @param {number} radix 进制数,默认10进制
6
+ * @returns {number} 返回转换后的数字
7
+ */
8
+ export declare function parseInt(value: string | number, radix?: number): number;
9
+ /**
10
+ * 转为小数类型
11
+ * @param {string|number} value 转换的值
12
+ * @returns {number} 返回转换后的数字
13
+ */
14
+ export declare function parseFloat(value: string | number): number;
@@ -0,0 +1,31 @@
1
+ import { isNull } from '../validate/index.mjs';
2
+
3
+ /**
4
+ * @module 数字
5
+ */
6
+ /**
7
+ * 转为数字类型
8
+ * @description 解决部分浏览器在转换 '08','09'等是0开头时被默认转8进制问题
9
+ * @param {string|number} value 转换的值
10
+ * @param {number} radix 进制数,默认10进制
11
+ * @returns {number} 返回转换后的数字
12
+ */
13
+ function parseInt(value, radix = 10) {
14
+ if (isNull(value)) {
15
+ return 0;
16
+ }
17
+ return Number.parseInt(String(value), radix);
18
+ }
19
+ /**
20
+ * 转为小数类型
21
+ * @param {string|number} value 转换的值
22
+ * @returns {number} 返回转换后的数字
23
+ */
24
+ function parseFloat(value) {
25
+ if (isNull(value)) {
26
+ return 0.0;
27
+ }
28
+ return Number.parseFloat(String(value));
29
+ }
30
+
31
+ export { parseFloat, parseInt };
@@ -0,0 +1,84 @@
1
+ /**
2
+ * map转object
3
+ * @param {Map} map 参数
4
+ * @returns {Object} 返回Object
5
+ */
6
+ export declare function mapToObject(map: Map<any, any>): Record<any, any>;
7
+ /**
8
+ * map转json字符串
9
+ * @param {Map} map 参数
10
+ * @returns {string} 返回Json字符串
11
+ */
12
+ export declare function mapToJson(map: Map<any, any>): string;
13
+ /**
14
+ * object转map
15
+ * @param {Object} obj 参数
16
+ * @returns {Map} 返回Map
17
+ */
18
+ export declare function objectToMap(obj: Record<any, any>): Map<any, any>;
19
+ /**
20
+ * json字符串转map
21
+ * @param {string} json json字符串
22
+ * @returns {Map} 返回Map
23
+ */
24
+ export declare function jsonToMap(json: string): Map<any, any>;
25
+ /**
26
+ * json对象转json字符串
27
+ * @param {Object} json json对象
28
+ * @param {boolean} replacer 是否处理循环引用
29
+ * @returns {string} 返回Json字符串
30
+ */
31
+ export declare function stringifyJson(json: Record<any, any>, replacer?: boolean): string;
32
+ /**
33
+ * json字符串转json对象
34
+ * @param {string} json json字符串
35
+ * @returns {Object} 返回Json对象
36
+ */
37
+ export declare function parseJson(json: string): Record<any, any> | null;
38
+ /**
39
+ * 浅拷贝数据
40
+ * @param {*} source 拷贝的数据
41
+ * @returns {*} 返回浅拷贝的数据
42
+ */
43
+ export declare function clone(source: any): any;
44
+ /**
45
+ * 深拷贝数据
46
+ * @param {*} source 拷贝的数据
47
+ * @returns {*} 返回深拷贝的数据
48
+ */
49
+ export declare function deepClone(source: any): any;
50
+ /**
51
+ * 比较两个对象是否相等
52
+ * @description 方法只能对比简单的对象,不能包含function,另外对象的属性顺序不一致也是相等的
53
+ * @param {Object} obj1 对象1
54
+ * @param {Object} obj2 对象2
55
+ * @returns {boolean} 返回true和false
56
+ */
57
+ export declare function objectEquals(obj1: Record<any, any>, obj2: Record<any, any>): boolean;
58
+ /**
59
+ * 合并对象
60
+ * @param {Object} target 目标对象
61
+ * @param {Object[]} source 原对象列表
62
+ * @returns {Object} 返回合并后的对象
63
+ */
64
+ export declare function merge(target: Record<any, any>, ...source: Record<any, any>[]): any;
65
+ /**
66
+ * 根据字符串属性路径获取目标对象的值
67
+ * @example
68
+ * let res = {code:200, data:{rows:[], pages:{current:1,pageSize:20}}}
69
+ * this._getValueByPath(res, 'data.pages.pageSize'); // 这里会输出20
70
+ * @param {Object} target 目标对象
71
+ * @param {string} path 字符串属性路径
72
+ * @returns {Object} 返回目标对象
73
+ */
74
+ export declare function getValueByPath(target: Record<any, any>, path?: string): any;
75
+ /**
76
+ * 根据字符串属性路径设置目标对象的值
77
+ * @example
78
+ * let res = {code:200, data:{rows:[], pages:{current:1,pageSize:20}}}
79
+ * this._setValueByPath(res, 'data.pages.pageSize', 30); // 打印res对象会发现pageSize的值改为了30
80
+ * @param {Object} target 目标对象
81
+ * @param {string} path 字符串属性路径
82
+ * @param {*} value 值
83
+ */
84
+ export declare function setValueByPath(target: Record<any, any>, path: string | undefined, value: any): Record<any, any>;