amos-apptool 1.1.0 → 1.2.1
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/esm/index.js +1 -1
- package/esm/math/calendarUtils.js +22 -9
- package/esm/url/restfulUrl.js +36 -3
- package/index.d.ts +760 -288
- package/lib/index.js +11 -8
- package/lib/math/calendarUtils.js +18 -5
- package/lib/url/restfulUrl.js +35 -3
- package/package.json +1 -1
package/index.d.ts
CHANGED
|
@@ -11,12 +11,12 @@ export class Base64 {
|
|
|
11
11
|
constructor();
|
|
12
12
|
/**
|
|
13
13
|
* 加密字符串
|
|
14
|
-
* @param input
|
|
14
|
+
* @param input 待加密的字符串
|
|
15
15
|
*/
|
|
16
16
|
encode(input: string): string;
|
|
17
17
|
/**
|
|
18
18
|
* 解密字符串
|
|
19
|
-
* @param input
|
|
19
|
+
* @param input 待解密的字符串
|
|
20
20
|
*/
|
|
21
21
|
decode(input: string): string;
|
|
22
22
|
}
|
|
@@ -28,7 +28,7 @@ export class Base64 {
|
|
|
28
28
|
declare namespace DES {
|
|
29
29
|
/**
|
|
30
30
|
* 加密字符串
|
|
31
|
-
* @param data
|
|
31
|
+
* @param data 待加密字符串
|
|
32
32
|
* @param secretKey 秘钥,支持单秘钥以及二级和三级秘钥 `abcde` 和 `a,b` 和 `a,b,c` 等
|
|
33
33
|
* @example
|
|
34
34
|
* DES.encode('hello', 'test'); // DES.DesCore.encode(data, 'test');
|
|
@@ -39,70 +39,97 @@ declare namespace DES {
|
|
|
39
39
|
export function encode(data: string, secretKey: string): string;
|
|
40
40
|
/**
|
|
41
41
|
* 解密字符串
|
|
42
|
-
* @param data
|
|
43
|
-
* @param secretKey
|
|
42
|
+
* @param data 待解密字符串
|
|
43
|
+
* @param secretKey 解密秘钥
|
|
44
44
|
*/
|
|
45
45
|
export function decode(data: string, secretKey: string): string;
|
|
46
46
|
}
|
|
47
47
|
|
|
48
|
-
|
|
49
|
-
export function
|
|
50
|
-
export function
|
|
51
|
-
export function cloneAll(o: any): any;
|
|
52
|
-
|
|
48
|
+
export function simpleClone<T extends object | any[]>(o: T): T;
|
|
49
|
+
export function clone<T>(o: T): T extends object | any[] ? T : T;
|
|
50
|
+
export function cloneAll<T>(o: T): T;
|
|
53
51
|
|
|
54
52
|
declare namespace UUID {
|
|
55
53
|
/**
|
|
56
|
-
*
|
|
54
|
+
* 生成UUID
|
|
57
55
|
* @param len uuid 的字符长度
|
|
58
56
|
* @param radix 位数,默认为 62
|
|
59
57
|
* @example
|
|
60
58
|
* UUID.uuid(); // 7ED03492-919F-40D0-89D2-C53194F4A83D
|
|
61
59
|
*/
|
|
62
|
-
export function uuid(len
|
|
60
|
+
export function uuid(len?: number, radix?: number): string;
|
|
63
61
|
/**
|
|
62
|
+
* 快速生成UUID
|
|
64
63
|
* @example
|
|
65
64
|
* UUID.uuidFast(); // E581CCDD-189C-482D-BE21-620863F423F9
|
|
66
65
|
*/
|
|
67
66
|
export function uuidFast(): string;
|
|
68
67
|
/**
|
|
68
|
+
* 生成紧凑格式UUID
|
|
69
69
|
* @example
|
|
70
70
|
* UUID.uuidCompact(); // 090c3e83-ea67-45c4-b7dc-47c20eaea91e
|
|
71
71
|
*/
|
|
72
72
|
export function uuidCompact(): string;
|
|
73
73
|
/**
|
|
74
74
|
* 获取 uid,以 Date.now() 为随机参照值
|
|
75
|
-
* @param flag 是否显示短杠,为 true
|
|
75
|
+
* @param flag 是否显示短杠,为 true 则去掉短杠
|
|
76
76
|
* @example
|
|
77
77
|
* UUID.uuidTime(); // 6fcac0c8-e7de-44e4-ada7-c1de03a45ad5
|
|
78
78
|
* UUID.uuidTime(true); // 5eb47f42a03c48e6ae6804a2517a1db4
|
|
79
79
|
*/
|
|
80
|
-
export function uuidTime(flag
|
|
80
|
+
export function uuidTime(flag?: boolean): string;
|
|
81
81
|
/**
|
|
82
|
-
*
|
|
82
|
+
* 生成带时间戳的UUID
|
|
83
|
+
* @param prefix 前缀
|
|
83
84
|
* @example
|
|
84
85
|
* UUID.timeUUID(); // amos-timeuuid-1663831567208-1
|
|
85
86
|
*/
|
|
86
|
-
export function timeUUID(prefix
|
|
87
|
+
export function timeUUID(prefix?: string): string;
|
|
87
88
|
/**
|
|
88
|
-
*
|
|
89
|
+
* 生成长格式带时间戳的UUID
|
|
90
|
+
* @param prefix 前缀
|
|
89
91
|
* @example
|
|
90
92
|
* UUID.longTimeUUID(); // longtime-202209221526-1
|
|
91
93
|
*/
|
|
92
|
-
export function longTimeUUID(prefix
|
|
94
|
+
export function longTimeUUID(prefix?: string): string;
|
|
93
95
|
/**
|
|
94
|
-
*
|
|
95
|
-
* @param tpl
|
|
96
|
+
* 生成自定义格式UUID
|
|
97
|
+
* @param tpl 模板字符串
|
|
96
98
|
* @example
|
|
97
99
|
* UUID.otherUUID(); // 6afe5aaf614eb8b00bf4bcd11a
|
|
98
100
|
*/
|
|
99
|
-
export function otherUUID(tpl
|
|
101
|
+
export function otherUUID(tpl?: string): string;
|
|
100
102
|
}
|
|
101
103
|
|
|
102
104
|
declare namespace pwdPolicy {
|
|
103
|
-
export
|
|
104
|
-
|
|
105
|
-
|
|
105
|
+
export interface PasswordPolicyResult {
|
|
106
|
+
password: string;
|
|
107
|
+
secretKey: string;
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
/**
|
|
111
|
+
* 普通密码生成策略
|
|
112
|
+
* @param password
|
|
113
|
+
*/
|
|
114
|
+
export function normalPolicy(password: string): PasswordPolicyResult;
|
|
115
|
+
/**
|
|
116
|
+
* 密码生成策略
|
|
117
|
+
* @param password 密码
|
|
118
|
+
* @param secretKey 秘钥
|
|
119
|
+
*/
|
|
120
|
+
export function advancePolicy(password: string, secretKey: string): PasswordPolicyResult;
|
|
121
|
+
/**
|
|
122
|
+
* 采用MD5生成密码
|
|
123
|
+
* @param password
|
|
124
|
+
* @param secretKey
|
|
125
|
+
*/
|
|
126
|
+
export function useMd5Policy(password: string, secretKey: string): PasswordPolicyResult;
|
|
127
|
+
/**
|
|
128
|
+
* 采用MD5生成密码
|
|
129
|
+
* @param password
|
|
130
|
+
* @param secretKey
|
|
131
|
+
*/
|
|
132
|
+
export function useMd5Policy2(password: string, secretKey: string): PasswordPolicyResult;
|
|
106
133
|
}
|
|
107
134
|
|
|
108
135
|
declare namespace random {
|
|
@@ -110,145 +137,177 @@ declare namespace random {
|
|
|
110
137
|
export function randomInt(min: number, max: number): number;
|
|
111
138
|
}
|
|
112
139
|
|
|
113
|
-
|
|
114
140
|
declare namespace strUtils {
|
|
115
141
|
/**
|
|
116
142
|
* 首字母大写
|
|
117
|
-
* @param str
|
|
143
|
+
* @param str 目标字符串
|
|
118
144
|
*/
|
|
119
145
|
export function toCapitalStr(str: string): string;
|
|
146
|
+
|
|
120
147
|
/**
|
|
121
148
|
* 驼峰化, 仅支持首字母大写、或者采用中杠连接的两个字母首字母大写
|
|
122
149
|
* 如果要支持其它输入,将正则改为: /(-|(\s+)|_)(\w)/g
|
|
123
|
-
*
|
|
124
|
-
* @
|
|
125
|
-
* @returns {String}
|
|
150
|
+
* @param name 目标字符串
|
|
151
|
+
* @returns 驼峰化后的字符串
|
|
126
152
|
*/
|
|
127
153
|
export function camelCase(name: string): string;
|
|
154
|
+
|
|
128
155
|
/**
|
|
129
|
-
*
|
|
130
|
-
*
|
|
156
|
+
* 将中杠连接的字符串 驼峰化
|
|
157
|
+
* @example
|
|
131
158
|
* hello-world => hellWorld
|
|
132
159
|
* Hello-world => hellWorld
|
|
133
160
|
* Hello-World => hellWorld
|
|
134
|
-
*
|
|
135
|
-
* @
|
|
136
|
-
* @returns {String}
|
|
161
|
+
* @param name 目标字符串
|
|
162
|
+
* @returns 驼峰化后的字符串
|
|
137
163
|
*/
|
|
138
164
|
export function transCamel(name: string): string;
|
|
165
|
+
|
|
139
166
|
/**
|
|
140
167
|
* 字符串首字母大写
|
|
141
|
-
* @param
|
|
142
|
-
* @returns
|
|
168
|
+
* @param str 目标字符串
|
|
169
|
+
* @returns 首字母大写后的字符串
|
|
143
170
|
*/
|
|
144
|
-
export function capFirst(
|
|
171
|
+
export function capFirst(str: string): string;
|
|
172
|
+
|
|
145
173
|
/**
|
|
146
174
|
* 获取字符串的hashCode码
|
|
147
|
-
* @param
|
|
148
|
-
* @returns
|
|
175
|
+
* @param str 目标字符串
|
|
176
|
+
* @returns hashCode值或null
|
|
149
177
|
*/
|
|
150
|
-
export function hashCode(
|
|
178
|
+
export function hashCode(str: string): string | null;
|
|
179
|
+
|
|
151
180
|
/**
|
|
152
181
|
* 进制与单位处理
|
|
153
|
-
*
|
|
154
|
-
*
|
|
155
|
-
*
|
|
156
|
-
*
|
|
157
|
-
*
|
|
158
|
-
*
|
|
159
|
-
*
|
|
160
|
-
*
|
|
161
|
-
*
|
|
162
|
-
*
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
182
|
+
*
|
|
183
|
+
* fmtOpt 参数 字段说明
|
|
184
|
+
* - fmtOpt.prefix 前缀
|
|
185
|
+
* - fmtOpt.suffix 后缀
|
|
186
|
+
* - fmtOpt.selfenable 自定义进制是否启用
|
|
187
|
+
* - fmtOpt.selfscale 进制
|
|
188
|
+
* - fmtOpt.selfunit 单位
|
|
189
|
+
* - fmtOpt.fixnumber 小数位数
|
|
190
|
+
* - fmtOpt.fillzero 空位补0
|
|
191
|
+
* - fmtOpt.thousandsplitchar 千分位分隔符
|
|
192
|
+
* @param value 要处理的值
|
|
193
|
+
* @param fmtOpt 格式化选项
|
|
194
|
+
*/
|
|
195
|
+
export function dealScaleAndUnit(
|
|
196
|
+
value: string | number,
|
|
197
|
+
fmtOpt: {
|
|
198
|
+
prefix?: string;
|
|
199
|
+
suffix?: string;
|
|
200
|
+
selfenable?: boolean;
|
|
201
|
+
selfscale?: string;
|
|
202
|
+
selfunit?: string;
|
|
203
|
+
fixnumber?: number;
|
|
204
|
+
fillzero?: boolean;
|
|
205
|
+
thousandsplitchar?: string;
|
|
206
|
+
}
|
|
207
|
+
): string;
|
|
208
|
+
|
|
209
|
+
/**
|
|
210
|
+
* 转化为 utf8 编码
|
|
211
|
+
* @param str 目标字符串
|
|
168
212
|
*/
|
|
169
213
|
export function toUTF8(str: string): string;
|
|
170
214
|
}
|
|
171
215
|
|
|
172
|
-
|
|
173
216
|
declare namespace colorUtil {
|
|
174
217
|
/**
|
|
175
218
|
* RGB颜色转换为16进制
|
|
176
|
-
* @param stringRgb
|
|
219
|
+
* @param stringRgb RGB/RGBA颜色字符串
|
|
177
220
|
* @example
|
|
178
221
|
* toStringHexColor('rgba(241,112,19,1)'); // #f17013
|
|
179
222
|
* toStringHexColor('rgba(241,112,19, 0.1)'); // #f1701319
|
|
180
223
|
*/
|
|
181
224
|
export function toStringHexColor(stringRgb: string): string;
|
|
225
|
+
|
|
182
226
|
/**
|
|
183
|
-
*
|
|
184
|
-
*
|
|
185
|
-
* @param
|
|
227
|
+
* 转化为hex颜色 (仅支持 RGB),如果是 rgba 时,则舍去 a。
|
|
228
|
+
* 如果传入的是 key color 则直接转化为与之对应的 hex 值
|
|
229
|
+
* @param stringRgb RGB/RGBA颜色字符串或颜色关键字
|
|
186
230
|
* @example
|
|
187
231
|
* toHexColor('rgba(241,112,19)'); // #f17013
|
|
188
232
|
* toHexColor('rgba(241,112,19, 1)'); // #f17013
|
|
189
233
|
* toHexColor('rgba(241,112,19, 0.1)'); // #f17013
|
|
190
234
|
* toHexColor('red'); // #ff0000
|
|
191
|
-
* toHexColor(); // ''
|
|
192
235
|
* toHexColor(null); // ''
|
|
193
236
|
* toHexColor(123456); // ''
|
|
194
237
|
* toHexColor(0x123456123456); // ''
|
|
195
238
|
*/
|
|
196
|
-
export function toHexColor(stringRgb
|
|
239
|
+
export function toHexColor(stringRgb?: string): string;
|
|
240
|
+
|
|
197
241
|
/**
|
|
198
242
|
* 16进制颜色转为RGB格式
|
|
199
|
-
* @param hexColor
|
|
243
|
+
* @param hexColor 16进制颜色字符串
|
|
200
244
|
* @example
|
|
201
245
|
* toRGBcolor('#AABBCC'); // rgb(170,187,204)
|
|
202
246
|
*/
|
|
203
|
-
export function toRGBcolor(hexColor): string;
|
|
247
|
+
export function toRGBcolor(hexColor: string): string;
|
|
248
|
+
|
|
204
249
|
/**
|
|
205
250
|
* 将16进制的颜色转换为rgb
|
|
206
|
-
* @param hexColor
|
|
251
|
+
* @param hexColor 16进制颜色字符串
|
|
207
252
|
* @example
|
|
208
253
|
* transformColor('#AABBCC'); // rgb(170,187,204)
|
|
209
254
|
*/
|
|
210
255
|
export function transformColor(hexColor: string): string;
|
|
256
|
+
|
|
257
|
+
/**
|
|
258
|
+
* 判断是否是16进制颜色
|
|
259
|
+
* @param color 颜色字符串
|
|
260
|
+
*/
|
|
211
261
|
export function isHexColor(color: string): boolean;
|
|
262
|
+
|
|
212
263
|
/**
|
|
213
264
|
* 判断是否是内置 英文 color
|
|
214
|
-
* @param color
|
|
265
|
+
* @param color 颜色字符串
|
|
215
266
|
* @example
|
|
216
267
|
* isKeyColor('red'); // true
|
|
217
|
-
* isKeyColor('yellow'); // true
|
|
218
268
|
* isKeyColor('asdfasdfa'); // false
|
|
219
269
|
*/
|
|
220
270
|
export function isKeyColor(color: string): boolean;
|
|
271
|
+
|
|
272
|
+
/**
|
|
273
|
+
* 判断是否是RGB/RGBA颜色
|
|
274
|
+
* @param color 颜色字符串
|
|
275
|
+
*/
|
|
221
276
|
export function isRgbColor(color: string): boolean;
|
|
277
|
+
|
|
222
278
|
/**
|
|
223
279
|
* 将rgb颜色转化成object
|
|
224
|
-
* @param color
|
|
280
|
+
* @param color RGB/RGBA颜色字符串
|
|
225
281
|
* @example
|
|
226
282
|
* '12,12,12,12' => {r:12,g:12,b:12,a:12}
|
|
227
283
|
* 'rgba(12,12,12,12)' => {r:12,g:12,b:12,a:12}
|
|
228
284
|
*/
|
|
229
285
|
export function rgb2object(color: string): RGBA;
|
|
286
|
+
|
|
230
287
|
/**
|
|
231
288
|
* 将object的rgb转化成string
|
|
232
|
-
* @param color
|
|
289
|
+
* @param color RGBA对象
|
|
233
290
|
* @example
|
|
234
291
|
* objRGB2str({ r:1, g:1, b:1, a:1 }); // 'rgba(1,1,1,1)'
|
|
235
292
|
* objRGB2str({ r:1, g:1, b:1, a:0 }); // 'rgba(1,1,1,0)'
|
|
236
293
|
* objRGB2str({ r:1, g:1, b:1 }); // 'rgba(1,1,1)'
|
|
237
294
|
*/
|
|
238
|
-
export function objRGB2str(color:
|
|
295
|
+
export function objRGB2str(color: Partial<RGBA>): string;
|
|
296
|
+
|
|
239
297
|
/**
|
|
240
298
|
* key color 转化为 hex color。
|
|
241
299
|
* 如果不是 key color 则直接返回 color 自身
|
|
242
|
-
* @param color
|
|
300
|
+
* @param color 颜色关键字
|
|
243
301
|
*/
|
|
244
302
|
export function keyColorToHex(color: string): string;
|
|
303
|
+
|
|
245
304
|
/**
|
|
246
305
|
* 产生渐变色函数
|
|
247
|
-
* @param color
|
|
248
|
-
* @param minValue
|
|
249
|
-
* @param maxValue
|
|
306
|
+
* @param color 基础颜色
|
|
307
|
+
* @param minValue 最小值
|
|
308
|
+
* @param maxValue 最大值
|
|
250
309
|
*/
|
|
251
|
-
export function gradientColor(color:
|
|
310
|
+
export function gradientColor(color: Record<string, any>, minValue: number, maxValue: number): string | RGBA;
|
|
252
311
|
}
|
|
253
312
|
|
|
254
313
|
declare namespace randomColor {
|
|
@@ -257,7 +316,6 @@ declare namespace randomColor {
|
|
|
257
316
|
export function randomHexColorStr(): string;
|
|
258
317
|
}
|
|
259
318
|
|
|
260
|
-
|
|
261
319
|
/**
|
|
262
320
|
* 转码URL中的特殊字符
|
|
263
321
|
*
|
|
@@ -271,8 +329,8 @@ declare namespace randomColor {
|
|
|
271
329
|
* 7. '&' URL 中指定的参数间的分隔符 %26
|
|
272
330
|
* 8. '=' URL 中指定参数的值 %3D
|
|
273
331
|
*
|
|
274
|
-
* @param url
|
|
275
|
-
* @return
|
|
332
|
+
* @param url 原始URL
|
|
333
|
+
* @return 转码后的URL
|
|
276
334
|
* @example
|
|
277
335
|
* encodeUrl('http://localhost:3000/login?user=123&pwd=123'); // http://localhost:3000/login?user%3D123%26pwd%3D123
|
|
278
336
|
*/
|
|
@@ -280,23 +338,77 @@ export function encodeUrl(url: string): string;
|
|
|
280
338
|
|
|
281
339
|
/**
|
|
282
340
|
* restful风格路径参数替换
|
|
283
|
-
*
|
|
284
|
-
* @param
|
|
285
|
-
* @param
|
|
286
|
-
* @param regexps
|
|
287
|
-
*
|
|
341
|
+
* @param url 模板URL
|
|
342
|
+
* @param options 参数对象
|
|
343
|
+
* @param regexps 匹配正则
|
|
288
344
|
* @example
|
|
289
345
|
* const _url = 'a/b/{id}'
|
|
290
346
|
* const url = restfulUrl(_url, { id: '123' }, [regex]); => 'a/b/123'
|
|
291
347
|
*/
|
|
292
|
-
export function restfulUrl(url: string, options:
|
|
348
|
+
export function restfulUrl(url: string, options: Record<string, any>, regexps: RegExp): string;
|
|
293
349
|
|
|
294
350
|
/**
|
|
351
|
+
* 替换 url 参数。如果url中无指定的参数,则自动追加。
|
|
352
|
+
*
|
|
353
|
+
* 自动将对象中的 undefined 值,转化为 ''。null 值则直接返回 null 字符串。
|
|
295
354
|
*
|
|
296
|
-
*
|
|
297
|
-
* @param
|
|
298
|
-
* @param
|
|
299
|
-
* @
|
|
355
|
+
* params 参数中的数据格式,建议调用处统一处理为 string 格式。内部仅统一处理 undefined 和 {} 格式。
|
|
356
|
+
* @param href 需要替换参数的 url。为空字符串则直接返回 href
|
|
357
|
+
* @param params 参数对象。为空对象,则直接返回 href。
|
|
358
|
+
* @example
|
|
359
|
+
* // 无参数,自动追加
|
|
360
|
+
* changeParam('a/b/d/g', { a: 1, b: 2, c: 3 }); // 'a/b/d/g?a=1&b=2&c=3'
|
|
361
|
+
* // 更新已有参数的值
|
|
362
|
+
* changeParam('a/b/d/g?a=aa&b=bb&c=cc', { a: 1, b: 2, c: 3 }); // 'a/b/d/g?a=1&b=2&c=3'
|
|
363
|
+
* // url 中无参数 d,自动追加参数
|
|
364
|
+
* changeParam('a/b/d/g?a=aa&b=bb&c=cc', { a: 1, b: 2, c: 3, d: 5 }); // 'a/b/d/g?a=1&b=2&c=3&d=5'
|
|
365
|
+
* // undefined 值转化为 ''
|
|
366
|
+
* changeParam('a/b/d/g', { a: 1, b: 2, c: undefined }); // 'a/b/d/g?a=1&b=2&c='
|
|
367
|
+
* // null 值转化为 'null'
|
|
368
|
+
* changeParam('a/b/d/g', { a: 1, b: null, c: undefined }); // 'a/b/d/g?a=1&b=null&c='
|
|
369
|
+
* // [] 和 {} 值。最好不要给参数中传入 {} 值
|
|
370
|
+
* changeParam('a/b/d/g', { a: { m: 3 }, b: [1,2] }); // a/b/d/g?a={"m":3}&b=1,2
|
|
371
|
+
* // 更换 token={token} 值,注意 原理并不是替换 {token} 值,而是更新 `token=xxx` 值,也就是目标是 `=` 左边的 `key` 与 params 中的 key 匹配
|
|
372
|
+
* changeParam('a/b/d/g?token={token}', { a: 'file', b: [1,2], token: 'mytoken' }); // a/b/d/g?token=mytoken&a=file&b=1,2
|
|
373
|
+
*/
|
|
374
|
+
export function changeParam(href: string, params: Record<string, any>): string;
|
|
375
|
+
|
|
376
|
+
/**
|
|
377
|
+
* 格式化url
|
|
378
|
+
* @param targetStr 模板字符串
|
|
379
|
+
* @param dataObj 数据对象
|
|
380
|
+
* @param regexps 匹配正则,默认: /\{(.*)\}/g
|
|
381
|
+
* @example
|
|
382
|
+
* formatUrl('a/{b}/{c}/d',{a: 1, b:2}) // 返回: 'a/1/2/d'
|
|
383
|
+
* formatUrl('a/{{b}}/{{c}}/d',{a: 1, b:2}, /\{\{(.*)\}\}/g) // 返回: 'a/1/2/d'
|
|
384
|
+
*/
|
|
385
|
+
export function formatUrl(
|
|
386
|
+
targetStr: string,
|
|
387
|
+
dataObj: Record<string, any>,
|
|
388
|
+
regexps?: string | RegExp
|
|
389
|
+
): string;
|
|
390
|
+
|
|
391
|
+
/**
|
|
392
|
+
* 补全 url 前缀
|
|
393
|
+
* @param left 左边通用前缀
|
|
394
|
+
* @param right 右边具体的 url
|
|
395
|
+
* @return 补全后的URL
|
|
396
|
+
* @example
|
|
397
|
+
* completePrefix('/aa/', 'b/c/d'); // '/aa/b/c/d'
|
|
398
|
+
* completePrefix('/aa /', ' b/c/d'); // '/aa/b/c/d'
|
|
399
|
+
* completePrefix('aa ', ' b c/d'); // 'aa/b c/d'
|
|
400
|
+
* completePrefix(' aa ', ' b c/d '); // 'aa/b c/d'
|
|
401
|
+
* // 注意,不会自动去除 url 内部的空格,会自动将 url 内部多余的 `/` 去掉
|
|
402
|
+
* completePrefix('// aa /', '/ b c///d /'); // '/ aa/b c/d /'
|
|
403
|
+
*/
|
|
404
|
+
export function completePrefix(left = '', right = ''): string;
|
|
405
|
+
|
|
406
|
+
/**
|
|
407
|
+
* 计算MD5哈希值
|
|
408
|
+
* @param str 目标字符串
|
|
409
|
+
* @param key HMAC密钥(可选)
|
|
410
|
+
* @param raw 是否返回原始二进制数据
|
|
411
|
+
* @returns md5值
|
|
300
412
|
* @example
|
|
301
413
|
* // calc the (hex-encoded) MD5 hash of a given string value:
|
|
302
414
|
* var hash = md5("value"); // "2063c1608d6e0baf80249c42e2be5804"
|
|
@@ -307,28 +419,33 @@ export function restfulUrl(url: string, options: {}, regexps: RegExp): string;
|
|
|
307
419
|
* // calc the raw HMAC-MD5 hash of a given string value and key:
|
|
308
420
|
* var hash = md5("value", "key", true);
|
|
309
421
|
*/
|
|
310
|
-
export function MD5(str: string, key
|
|
422
|
+
export function MD5(str: string, key?: string, raw?: boolean): string;
|
|
311
423
|
|
|
312
424
|
/**
|
|
313
|
-
*
|
|
425
|
+
* 深拷贝
|
|
426
|
+
* @param source 源对象
|
|
314
427
|
* 1. obj 中包含方法,则直接赋值
|
|
315
|
-
* @param source
|
|
316
428
|
*/
|
|
317
|
-
export function deepCopy(source:
|
|
429
|
+
export function deepCopy<T>(source: T): T;
|
|
430
|
+
|
|
318
431
|
/**
|
|
319
|
-
*
|
|
320
|
-
* @param valA
|
|
321
|
-
* @param valB
|
|
432
|
+
* 通过序列化实现深比较
|
|
433
|
+
* @param valA 比较值A
|
|
434
|
+
* @param valB 比较值B
|
|
322
435
|
*/
|
|
323
436
|
export function deepEqual(valA: any, valB: any): boolean;
|
|
324
437
|
|
|
325
438
|
/**
|
|
326
|
-
*
|
|
439
|
+
* 快速深比较
|
|
440
|
+
* @param a 比较值A
|
|
441
|
+
* @param b 比较值B
|
|
327
442
|
* support: Object/Array/String/Number/RegExp/
|
|
328
|
-
* @param valA
|
|
329
|
-
* @param valB
|
|
330
443
|
*/
|
|
331
444
|
export function fastDeepEqual(a: any, b: any): boolean;
|
|
445
|
+
|
|
446
|
+
/**
|
|
447
|
+
* 判断是否在Node.js环境中
|
|
448
|
+
*/
|
|
332
449
|
export function isNode(): boolean;
|
|
333
450
|
|
|
334
451
|
/**
|
|
@@ -338,62 +455,94 @@ export function isNode(): boolean;
|
|
|
338
455
|
* @example
|
|
339
456
|
* omit({ name: 'ilex', age: 16 }, ['age']); // { name: 'ilex' }
|
|
340
457
|
*/
|
|
341
|
-
export function omit
|
|
458
|
+
export function omit<T extends object, K extends keyof T>(
|
|
459
|
+
obj: T,
|
|
460
|
+
keys: K | K[]
|
|
461
|
+
): Omit<T, K>;
|
|
342
462
|
|
|
343
463
|
/**
|
|
344
464
|
* 从指定的 obj 中获取 指定的key组成新的对象
|
|
345
|
-
* @param obj
|
|
346
|
-
* @param keys
|
|
465
|
+
* @param obj 目标对象
|
|
466
|
+
* @param keys 需要提取的键
|
|
347
467
|
* @example
|
|
348
468
|
* pick({ name: 'ilex', age: 16 }, ['age']); // { age: 16 }
|
|
349
469
|
* pick({ name: 'ilex', age: 16 }, ['']); // {}
|
|
350
470
|
* pick({ name: 'ilex', age: 16 }, ['you']); // {},如果指定对象中无指定的 key,则不拾取
|
|
351
471
|
*/
|
|
352
|
-
export function pick
|
|
472
|
+
export function pick<T extends object, K extends keyof T>(
|
|
473
|
+
obj: T | Function,
|
|
474
|
+
keys: K | K[]
|
|
475
|
+
): Partial<Pick<T, K>>;
|
|
476
|
+
|
|
353
477
|
/**
|
|
354
478
|
* 从指定的 obj 中获取 满足 judge(key, value) 组成新的对象
|
|
355
|
-
*
|
|
356
|
-
* @param
|
|
357
|
-
* @param judge
|
|
479
|
+
* @param obj 目标对象
|
|
480
|
+
* @param judge 判断函数
|
|
358
481
|
* @example
|
|
359
482
|
* pickBy({ a: 1, b: 2, c: 'ray' }, (key, value) => typeof value === 'number')
|
|
360
483
|
*/
|
|
361
|
-
export function pickBy
|
|
484
|
+
export function pickBy<T extends object>(
|
|
485
|
+
obj: T | Function,
|
|
486
|
+
judge: (key: keyof T, value: T[keyof T]) => boolean
|
|
487
|
+
): Partial<T>;
|
|
488
|
+
|
|
362
489
|
/**
|
|
363
490
|
* 将数据转化为json
|
|
364
|
-
* @param data
|
|
491
|
+
* @param data 原始数据
|
|
365
492
|
*/
|
|
366
|
-
export function parseJson(data:
|
|
493
|
+
export function parseJson(data: string): any;
|
|
367
494
|
|
|
368
495
|
/**
|
|
369
|
-
* 将object
|
|
370
|
-
* @param json
|
|
496
|
+
* 将object等类型的数据转化为string
|
|
497
|
+
* @param json 原始数据
|
|
371
498
|
*/
|
|
372
|
-
export function stringify(json: any):
|
|
499
|
+
export function stringify(json: any): string;
|
|
373
500
|
|
|
501
|
+
/**
|
|
502
|
+
* 去除字符串两端空白
|
|
503
|
+
* @param str 目标字符串
|
|
504
|
+
*/
|
|
374
505
|
export function trim(str: string | null | undefined): string;
|
|
375
506
|
|
|
376
|
-
|
|
377
|
-
export class objectPath {
|
|
507
|
+
export const objectPath: {
|
|
378
508
|
/**
|
|
379
509
|
* tests path existence
|
|
380
|
-
* @param obj
|
|
381
|
-
* @param path
|
|
510
|
+
* @param obj 目标对象
|
|
511
|
+
* @param path 属性路径
|
|
382
512
|
* @example
|
|
383
513
|
* objectPath.has(obj, "a.b"); // true
|
|
384
514
|
* objectPath.has(obj, ["a","d"]); // false
|
|
385
515
|
*/
|
|
386
|
-
has(obj:
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
516
|
+
has(obj: object, path: number | string | (number | string)[]): boolean;
|
|
517
|
+
|
|
518
|
+
ensureExists(obj: object, path: number | string | (number | string)[], value: any): boolean;
|
|
519
|
+
|
|
520
|
+
set(
|
|
521
|
+
obj: object,
|
|
522
|
+
path: number | string | (number | string)[],
|
|
523
|
+
value: any,
|
|
524
|
+
doNotReplace?: boolean
|
|
525
|
+
): void;
|
|
526
|
+
|
|
527
|
+
empty(obj: object, path: number | string | (number | string)[]): void;
|
|
528
|
+
|
|
529
|
+
push(
|
|
530
|
+
obj: object,
|
|
531
|
+
path: number | string | (number | string)[],
|
|
532
|
+
...values: any[]
|
|
533
|
+
): void;
|
|
534
|
+
|
|
535
|
+
coalesce(
|
|
536
|
+
obj: object,
|
|
537
|
+
paths: Array<number | string | (number | string)[]>,
|
|
538
|
+
defaultValue: any
|
|
539
|
+
): any;
|
|
540
|
+
|
|
392
541
|
/**
|
|
393
542
|
* 获取指定路径节点
|
|
394
|
-
* @param obj
|
|
395
|
-
* @param path
|
|
396
|
-
* @param defaultValue
|
|
543
|
+
* @param obj 目标对象
|
|
544
|
+
* @param path 属性路径
|
|
545
|
+
* @param defaultValue 默认值
|
|
397
546
|
* @example
|
|
398
547
|
* // bind object
|
|
399
548
|
var model = objectPath({
|
|
@@ -406,72 +555,112 @@ export class objectPath {
|
|
|
406
555
|
//now any method from above is supported directly w/o passing an object
|
|
407
556
|
model.get("a.b"); //returns "d"
|
|
408
557
|
*/
|
|
409
|
-
get(
|
|
558
|
+
get(
|
|
559
|
+
obj: object,
|
|
560
|
+
path: number | string | (number | string)[],
|
|
561
|
+
defaultValue?: any
|
|
562
|
+
): any;
|
|
563
|
+
|
|
410
564
|
/**
|
|
411
565
|
* 删除指定路径节点
|
|
412
|
-
* @param obj
|
|
413
|
-
* @param path
|
|
566
|
+
* @param obj 目标对象
|
|
567
|
+
* @param path 属性路径
|
|
414
568
|
* @example
|
|
415
569
|
* model.del("a.b"); // obj.a.b is now undefined
|
|
416
570
|
*/
|
|
417
|
-
del(obj:
|
|
418
|
-
|
|
419
|
-
|
|
571
|
+
del(obj: object, path: number | string | (number | string)[]): void;
|
|
572
|
+
|
|
573
|
+
/**
|
|
574
|
+
* 创建一个新的 objectPath
|
|
575
|
+
* @param options
|
|
576
|
+
*/
|
|
577
|
+
create(options?: Record<string, any>): typeof objectPath;
|
|
578
|
+
|
|
579
|
+
/**
|
|
580
|
+
*includeInheritedProps 为 true 的 objectPath
|
|
581
|
+
*/
|
|
582
|
+
withInheritedProps: typeof objectPath;
|
|
420
583
|
}
|
|
421
584
|
|
|
422
585
|
/**
|
|
423
|
-
*
|
|
424
|
-
* @param text
|
|
425
|
-
* @param dataObj
|
|
426
|
-
* @param regexps
|
|
427
|
-
* @returns
|
|
586
|
+
* 解析数据并替换模板中的占位符
|
|
587
|
+
* @param text 模板文本
|
|
588
|
+
* @param dataObj 数据对象
|
|
589
|
+
* @param regexps 匹配正则(可选)
|
|
590
|
+
* @returns 替换后的字符串
|
|
428
591
|
* @example
|
|
429
592
|
* demo: parseText('a/{b}/{c}/d',{a: 1, b:2}) 返回: 'a/1/2/d'
|
|
430
593
|
* demo: parseText('a/b?name={name}&pwd={pwd}',{name: 'ilex', pwd:122}) 返回: 'a/b?name=ilex&pwd=123'
|
|
431
594
|
*/
|
|
432
|
-
export function parseText(
|
|
595
|
+
export function parseText(
|
|
596
|
+
text: string,
|
|
597
|
+
dataObj: Record<string, any>,
|
|
598
|
+
regexps?: string | RegExp
|
|
599
|
+
): string;
|
|
433
600
|
|
|
434
|
-
|
|
601
|
+
/**
|
|
602
|
+
* 浅比较
|
|
603
|
+
* @param objA 比较对象A
|
|
604
|
+
* @param objB 比较对象B
|
|
605
|
+
*/
|
|
606
|
+
export function shallowEqual(objA: any, objB: any): boolean;
|
|
435
607
|
|
|
608
|
+
/**
|
|
609
|
+
* 加法运算(解决精度问题)
|
|
610
|
+
* @param arg1 加数
|
|
611
|
+
* @param arg2 被加数
|
|
612
|
+
*/
|
|
613
|
+
export function addition(arg1: number, arg2: number): number;
|
|
614
|
+
|
|
615
|
+
/**
|
|
616
|
+
* 减法运算(解决精度问题)
|
|
617
|
+
* @param arg1 减数
|
|
618
|
+
* @param arg2 被减数
|
|
619
|
+
*/
|
|
620
|
+
export function subtraction(arg1: number, arg2: number): number;
|
|
436
621
|
|
|
437
|
-
export function addition(arg1, arg2): number;
|
|
438
|
-
export function subtraction(arg1, arg2): number;
|
|
439
622
|
/**
|
|
440
623
|
* 小数乘法
|
|
441
624
|
* @param arg1 被乘数(接受小数和整数)
|
|
442
625
|
* @param arg2 乘数(接受小数和整数)
|
|
443
626
|
* @param fix 乘积保留几位(接受正负整数以及0),默认值为 0
|
|
444
|
-
* @returns
|
|
627
|
+
* @returns 乘积结果
|
|
445
628
|
* @example
|
|
446
629
|
* accMul(0.56, 100); // 56
|
|
447
630
|
* accMul(0.5679, 100); // 57
|
|
448
631
|
* accMul(0.5679, 100.2); // 57
|
|
449
|
-
*/
|
|
450
|
-
export function accMul(arg1:
|
|
632
|
+
*/
|
|
633
|
+
export function accMul(arg1: number, arg2: number, fix?: number): number;
|
|
634
|
+
|
|
451
635
|
/**
|
|
452
636
|
* 小数除法
|
|
453
|
-
* @param arg1
|
|
454
|
-
* @param arg2
|
|
637
|
+
* @param arg1 被除数
|
|
638
|
+
* @param arg2 除数
|
|
455
639
|
* @param fix 除法保留几位(接受正负整数以及0),默认值为 0
|
|
456
|
-
* @returns
|
|
640
|
+
* @returns 除法结果
|
|
457
641
|
* @example
|
|
458
642
|
* accDivide(56, 100); // 0.56
|
|
459
643
|
* accDivide(5679, 100, 2); // 56.79
|
|
460
644
|
* accDivide(5679, 100.2, 2); // 56.68
|
|
461
645
|
*/
|
|
462
|
-
export function accDivide(arg1:
|
|
646
|
+
export function accDivide(arg1: number, arg2: number, fix?: number): number;
|
|
463
647
|
|
|
464
648
|
/**
|
|
465
649
|
* 将数值格式化成金额形式
|
|
466
|
-
*
|
|
467
650
|
* @param num 数值(Number或者String)
|
|
468
|
-
* @param precision
|
|
651
|
+
* @param precision 精度,默认不变
|
|
469
652
|
* @param separator 分隔符,默认为逗号
|
|
470
653
|
* @param sign 前缀,默认为$
|
|
471
654
|
* @param unit 单位,默认为空
|
|
472
655
|
* @return 金额格式的字符串,如'1,234,567',默认返回 ''
|
|
473
656
|
*/
|
|
474
|
-
export function coinFormat(
|
|
657
|
+
export function coinFormat(
|
|
658
|
+
num: number | string,
|
|
659
|
+
precision?: number,
|
|
660
|
+
separator?: string,
|
|
661
|
+
sign?: string,
|
|
662
|
+
unit?: string
|
|
663
|
+
): string;
|
|
475
664
|
|
|
476
665
|
// --- 日历工具类
|
|
477
666
|
/**
|
|
@@ -556,7 +745,12 @@ interface DateHelper {
|
|
|
556
745
|
* @param firstDayOfWeek 一周的第一天(0表示周日,默认0)
|
|
557
746
|
* @return {number} 周数
|
|
558
747
|
*/
|
|
559
|
-
getMonthWeek(
|
|
748
|
+
getMonthWeek(
|
|
749
|
+
year: number | string,
|
|
750
|
+
month: number | string,
|
|
751
|
+
date: number | string,
|
|
752
|
+
firstDayOfWeek?: number
|
|
753
|
+
): number;
|
|
560
754
|
|
|
561
755
|
/**
|
|
562
756
|
* 获取指定日期在当年的周数
|
|
@@ -566,7 +760,12 @@ interface DateHelper {
|
|
|
566
760
|
* @param firstDayOfWeek 一周的第一天(0表示周日,默认0)
|
|
567
761
|
* @return {number} 周数
|
|
568
762
|
*/
|
|
569
|
-
getYearWeek(
|
|
763
|
+
getYearWeek(
|
|
764
|
+
year: number | string,
|
|
765
|
+
month: number | string,
|
|
766
|
+
date: number | string,
|
|
767
|
+
firstDayOfWeek?: number
|
|
768
|
+
): number;
|
|
570
769
|
|
|
571
770
|
/**
|
|
572
771
|
* 获取指定日期所在周的起止日期
|
|
@@ -576,7 +775,12 @@ interface DateHelper {
|
|
|
576
775
|
* @param firstDayOfWeek 一周的第一天(0表示周日,默认0)
|
|
577
776
|
* @return {[string, string]} 周起始日期和结束日期组成的数组
|
|
578
777
|
*/
|
|
579
|
-
getWeekDate(
|
|
778
|
+
getWeekDate(
|
|
779
|
+
year: number | string,
|
|
780
|
+
month: number | string,
|
|
781
|
+
date: number | string,
|
|
782
|
+
firstDayOfWeek?: number
|
|
783
|
+
): [string, string];
|
|
580
784
|
|
|
581
785
|
/**
|
|
582
786
|
* 格式化日期结果
|
|
@@ -622,7 +826,11 @@ interface PanelDate {
|
|
|
622
826
|
* @param month 月
|
|
623
827
|
* @returns [年, 两位数字的月, 该月天数]
|
|
624
828
|
*/
|
|
625
|
-
declare function getCurrMonthData(
|
|
829
|
+
declare function getCurrMonthData(
|
|
830
|
+
type: string,
|
|
831
|
+
year: number,
|
|
832
|
+
month: number
|
|
833
|
+
): [number, string, number];
|
|
626
834
|
|
|
627
835
|
/**
|
|
628
836
|
* 获取日期状态
|
|
@@ -631,7 +839,11 @@ declare function getCurrMonthData(type: string, year: number, month: number): [n
|
|
|
631
839
|
* @param month 月
|
|
632
840
|
* @returns 日期状态数组
|
|
633
841
|
*/
|
|
634
|
-
declare function getDaysStatus(
|
|
842
|
+
declare function getDaysStatus(
|
|
843
|
+
type: string,
|
|
844
|
+
year: number,
|
|
845
|
+
month: number
|
|
846
|
+
): DayStatus[];
|
|
635
847
|
|
|
636
848
|
/**
|
|
637
849
|
* 获取上一个月的最后一周天数,填充当月空白
|
|
@@ -641,7 +853,12 @@ declare function getDaysStatus(type: string, year: number, month: number): DaySt
|
|
|
641
853
|
* @param firstDayOfWeek 一周的第一天(0表示周日)
|
|
642
854
|
* @returns 上月填充日期数组
|
|
643
855
|
*/
|
|
644
|
-
declare function getPreMonthDates(
|
|
856
|
+
declare function getPreMonthDates(
|
|
857
|
+
type: string,
|
|
858
|
+
year: number,
|
|
859
|
+
month: number,
|
|
860
|
+
firstDayOfWeek: number
|
|
861
|
+
): DayStatus[];
|
|
645
862
|
|
|
646
863
|
/**
|
|
647
864
|
* 将日期对象转换为年、月、日结构
|
|
@@ -664,7 +881,11 @@ declare function convertDayToDate(day: DayObject | null): Date | null;
|
|
|
664
881
|
* @param firstDayOfWeek 一周的第一天(0表示周日)
|
|
665
882
|
* @returns 上月面板日期数组
|
|
666
883
|
*/
|
|
667
|
-
declare function getPrevMonthDays(
|
|
884
|
+
declare function getPrevMonthDays(
|
|
885
|
+
year: number,
|
|
886
|
+
month: number,
|
|
887
|
+
firstDayOfWeek: number
|
|
888
|
+
): PanelDate[];
|
|
668
889
|
|
|
669
890
|
/**
|
|
670
891
|
* 获取当前月的日期数据
|
|
@@ -672,7 +893,10 @@ declare function getPrevMonthDays(year: number, month: number, firstDayOfWeek: n
|
|
|
672
893
|
* @param month 月
|
|
673
894
|
* @returns 当月面板日期数组
|
|
674
895
|
*/
|
|
675
|
-
declare function getCurrentMonthDays(
|
|
896
|
+
declare function getCurrentMonthDays(
|
|
897
|
+
year: number,
|
|
898
|
+
month: number
|
|
899
|
+
): PanelDate[];
|
|
676
900
|
|
|
677
901
|
/**
|
|
678
902
|
* 根据日期获取当前周的起始日期
|
|
@@ -680,7 +904,17 @@ declare function getCurrentMonthDays(year: number, month: number): PanelDate[];
|
|
|
680
904
|
* @param firstDayOfWeek 一周的第一天(0表示周日)
|
|
681
905
|
* @returns [周起始日期, 周结束日期]
|
|
682
906
|
*/
|
|
683
|
-
declare function getCurrentWeekDays(
|
|
907
|
+
declare function getCurrentWeekDays(
|
|
908
|
+
day: DayObject,
|
|
909
|
+
firstDayOfWeek: number
|
|
910
|
+
): [DayObject, DayObject];
|
|
911
|
+
|
|
912
|
+
/**
|
|
913
|
+
* 检测传入的日期是 今天
|
|
914
|
+
* @param dayObj PanelDate 对象
|
|
915
|
+
* @returns boolean
|
|
916
|
+
*/
|
|
917
|
+
declare function checkIsToday(dayObj: PanelDate | null): boolean;
|
|
684
918
|
|
|
685
919
|
/**
|
|
686
920
|
* 日历工具类
|
|
@@ -695,86 +929,98 @@ declare const CalendarUtils: {
|
|
|
695
929
|
getPrevMonthDays: typeof getPrevMonthDays;
|
|
696
930
|
getCurrentMonthDays: typeof getCurrentMonthDays;
|
|
697
931
|
getCurrentWeekDays: typeof getCurrentWeekDays;
|
|
932
|
+
checkIsToday: typeof checkIsToday;
|
|
698
933
|
};
|
|
699
934
|
|
|
700
935
|
export { CalendarUtils };
|
|
701
936
|
export type { DayObject, DayStatus, PanelDate, DateHelper };
|
|
702
937
|
|
|
703
938
|
/**
|
|
704
|
-
*
|
|
939
|
+
* 日期时间工具
|
|
705
940
|
*/
|
|
706
941
|
declare namespace dateTime {
|
|
707
942
|
/**
|
|
708
943
|
* 将日期时间戳格式化成指定格式
|
|
709
|
-
* @param date
|
|
710
|
-
* @param fmt
|
|
944
|
+
* @param date 日期对象或时间戳
|
|
945
|
+
* @param fmt 格式化模板,默认 yyyy-MM-dd HH:mm:ss
|
|
711
946
|
* @example
|
|
712
947
|
* formatDate(); // 2016-09-02 13:17:13
|
|
713
948
|
* formatDate(new Date(), 'yyyy-MM-dd'); // 2016-09-02
|
|
714
949
|
* formatDate(new Date(), 'yyyy-MM-dd 第q季度 www HH:mm:ss:SSS');// 2016-09-02 第3季度 星期五 13:19:15:792
|
|
715
950
|
* formatDate(1472793615764); // 2016-09-02 13:20:15
|
|
716
951
|
*/
|
|
717
|
-
export function formatDate(date
|
|
952
|
+
export function formatDate(date?: Date | number, fmt?: string): string;
|
|
953
|
+
|
|
718
954
|
/**
|
|
719
|
-
*
|
|
720
|
-
*
|
|
721
|
-
* @
|
|
722
|
-
* @
|
|
955
|
+
* 时间戳转时间字符串
|
|
956
|
+
* @param date 日期对象或时间戳
|
|
957
|
+
* @returns 格式化后的时间字符串
|
|
958
|
+
* @example
|
|
959
|
+
* timetrans(1472793615764); // 2016-09-02 13:20:15
|
|
723
960
|
*/
|
|
724
961
|
export function timetrans(date: Date | number): string;
|
|
962
|
+
|
|
725
963
|
/**
|
|
726
|
-
|
|
727
|
-
*
|
|
728
|
-
* @
|
|
729
|
-
* @
|
|
964
|
+
* 将一个日期格式化成友好格式
|
|
965
|
+
* @param date 日期对象或时间戳
|
|
966
|
+
* @returns 友好格式的时间字符串
|
|
967
|
+
* @example
|
|
968
|
+
* formatDateToFriendly(new Date()); // "刚刚" 或 "1分钟前" 等
|
|
730
969
|
*/
|
|
731
970
|
export function formatDateToFriendly(date: Date | number): string;
|
|
971
|
+
|
|
732
972
|
/**
|
|
733
973
|
* 将一段时长转换成友好格式
|
|
734
|
-
* @param time
|
|
735
|
-
* @returns
|
|
974
|
+
* @param time 时间戳(毫秒)
|
|
975
|
+
* @returns 友好格式的时长字符串
|
|
736
976
|
* @example
|
|
737
|
-
*
|
|
738
|
-
* var str2 = friendlyDate('1503190042273'); // 1天前
|
|
977
|
+
* friendlyDate('1503190042273'); // 1天前
|
|
739
978
|
*/
|
|
740
979
|
export function friendlyDate(time: number): string;
|
|
980
|
+
|
|
741
981
|
/**
|
|
742
|
-
*
|
|
743
|
-
* @param second
|
|
744
|
-
* @returns
|
|
982
|
+
* 将秒数转换成友好格式的时长
|
|
983
|
+
* @param second 秒数
|
|
984
|
+
* @returns 友好格式的时长字符串
|
|
745
985
|
* @example
|
|
986
|
+
* formatDurationToFriendly(147); // "2分27秒"
|
|
746
987
|
* 147->“2分27秒”
|
|
747
988
|
* 1581->“26分21秒”
|
|
748
989
|
* 15818->“4小时24分”
|
|
749
990
|
*/
|
|
750
991
|
export function formatDurationToFriendly(second: number): string;
|
|
992
|
+
|
|
751
993
|
/**
|
|
752
|
-
*
|
|
753
|
-
* @param second
|
|
994
|
+
* 将秒数转换成MM:SS形式
|
|
995
|
+
* @param second 秒数
|
|
754
996
|
*/
|
|
755
997
|
export function formatTimeToFriendly(second: number): string;
|
|
998
|
+
|
|
756
999
|
/**
|
|
757
|
-
* 判断某一年是否是闰年
|
|
758
|
-
* @param year
|
|
1000
|
+
* 判断某一年是否是闰年
|
|
1001
|
+
* @param year 年份或日期对象
|
|
759
1002
|
*/
|
|
760
|
-
export function isLeapYear(year: number):
|
|
1003
|
+
export function isLeapYear(year: number | Date): boolean;
|
|
1004
|
+
|
|
761
1005
|
/**
|
|
762
|
-
*
|
|
763
|
-
* @param date
|
|
764
|
-
* @param month
|
|
1006
|
+
* 获取某一年某一月的总天数
|
|
1007
|
+
* @param date 年份或日期对象
|
|
1008
|
+
* @param month 月份(可选)
|
|
765
1009
|
* @example
|
|
766
|
-
*
|
|
767
|
-
*
|
|
768
|
-
*
|
|
1010
|
+
* getMonthDays(); // 当前月天数
|
|
1011
|
+
* getMonthDays(new Date());
|
|
1012
|
+
* getMonthDays(2013, 12); // 2013年12月天数
|
|
769
1013
|
*/
|
|
770
|
-
export function getMonthDays(date
|
|
1014
|
+
export function getMonthDays(date?: Date | number, month?: number): number;
|
|
1015
|
+
|
|
771
1016
|
/**
|
|
772
1017
|
* 计算两个日期之间的天数,用的是比较毫秒数的方法
|
|
773
1018
|
* 传进来的日期要么是Date类型,要么是yyyy-MM-dd格式的字符串日期
|
|
774
1019
|
* @param date1 日期一
|
|
775
1020
|
* @param date2 日期二
|
|
776
1021
|
*/
|
|
777
|
-
export function countDays(date1: Date |
|
|
1022
|
+
export function countDays(date1: Date | string, date2: Date | string): number;
|
|
1023
|
+
|
|
778
1024
|
/**
|
|
779
1025
|
* 将字符串解析成日期
|
|
780
1026
|
* @param str 输入的日期字符串,如'2014-09-13'
|
|
@@ -784,93 +1030,167 @@ declare namespace dateTime {
|
|
|
784
1030
|
* parseDate('2016-08-11'); // Thu Aug 11 2016 00:00:00 GMT+0800
|
|
785
1031
|
* parseDate('2016-08-11 13:28:43', 'yyyy-MM-dd HH:mm:ss') // Thu Aug 11 2016 13:28:43 GMT+0800
|
|
786
1032
|
*/
|
|
787
|
-
export function parseDate(str: string, fmt
|
|
1033
|
+
export function parseDate(str: string, fmt?: string): Date;
|
|
1034
|
+
|
|
788
1035
|
/**
|
|
789
1036
|
* 到某一个时间的倒计时
|
|
790
|
-
* @param endTime
|
|
1037
|
+
* @param endTime 结束时间
|
|
1038
|
+
* @returns 倒计时对象
|
|
791
1039
|
* @example
|
|
792
|
-
* getEndTime('2017/7/22 16:0:0') //
|
|
1040
|
+
* getEndTime('2017/7/22 16:0:0') // {d:6, h:2, m:28, s:20}
|
|
793
1041
|
*/
|
|
794
|
-
export function getEndTime(endTime: string | number):
|
|
1042
|
+
export function getEndTime(endTime: string | number): {
|
|
1043
|
+
days: number;
|
|
1044
|
+
hours: number;
|
|
1045
|
+
minutes: number;
|
|
1046
|
+
seconds: number;
|
|
1047
|
+
[key: string]: number;
|
|
1048
|
+
};
|
|
1049
|
+
|
|
795
1050
|
/**
|
|
796
|
-
*
|
|
797
|
-
* @param endTime
|
|
1051
|
+
* 到某一个时间的倒计时字符串
|
|
1052
|
+
* @param endTime 结束时间
|
|
1053
|
+
* @returns 倒计时字符串
|
|
798
1054
|
* @example
|
|
799
1055
|
* getEndTimeStr('2017/7/22 16:0:0') // "剩余时间6天 2小时 28 分钟20 秒"
|
|
800
1056
|
*/
|
|
801
1057
|
export function getEndTimeStr(endTime: string | number): string;
|
|
1058
|
+
|
|
802
1059
|
/**
|
|
803
1060
|
* 获取某月有多少天
|
|
804
|
-
* @param time
|
|
1061
|
+
* @param time 日期字符串或时间戳
|
|
805
1062
|
*/
|
|
806
|
-
export function getMonthOfDay(time: string | number):
|
|
1063
|
+
export function getMonthOfDay(time: string | number): number;
|
|
1064
|
+
|
|
807
1065
|
/**
|
|
808
1066
|
* 获取某年有多少天
|
|
809
|
-
* @param time
|
|
1067
|
+
* @param time 日期字符串或时间戳
|
|
810
1068
|
*/
|
|
811
|
-
export function getYearOfDay(time: string | number):
|
|
1069
|
+
export function getYearOfDay(time: string | number): number;
|
|
1070
|
+
|
|
812
1071
|
/**
|
|
813
1072
|
* 获取某年的第一天
|
|
814
|
-
* @param time
|
|
1073
|
+
* @param time 日期字符串或时间戳
|
|
815
1074
|
*/
|
|
816
1075
|
export function getFirstDayOfYear(time: string | number): string;
|
|
1076
|
+
|
|
817
1077
|
/**
|
|
818
1078
|
* 获取某年最后一天
|
|
819
|
-
* @param time
|
|
1079
|
+
* @param time 日期字符串或时间戳
|
|
820
1080
|
*/
|
|
821
1081
|
export function getLastDayOfYear(time: string | number): string;
|
|
1082
|
+
|
|
822
1083
|
/**
|
|
823
1084
|
* 获取某个日期是当年中的第几天
|
|
824
|
-
* @param time
|
|
1085
|
+
* @param time 日期字符串或时间戳
|
|
825
1086
|
*/
|
|
826
|
-
export function getDayOfYear(time: string | number):
|
|
1087
|
+
export function getDayOfYear(time: string | number): number;
|
|
1088
|
+
|
|
827
1089
|
/**
|
|
828
1090
|
* 获取某个日期在这一年的第几周
|
|
829
|
-
* @param time
|
|
1091
|
+
* @param time 日期字符串或时间戳
|
|
830
1092
|
*/
|
|
831
|
-
export function getDayOfYearWeek(time: string | number):
|
|
1093
|
+
export function getDayOfYearWeek(time: string | number): number;
|
|
1094
|
+
|
|
832
1095
|
/**
|
|
833
1096
|
* 获取两个时间段差多久
|
|
834
|
-
* @param
|
|
835
|
-
* @param fmt
|
|
1097
|
+
* @param str 时间字符串
|
|
1098
|
+
* @param fmt 格式模板
|
|
836
1099
|
*/
|
|
837
1100
|
export function timeFn(str: string, fmt: string): string;
|
|
838
1101
|
}
|
|
839
1102
|
|
|
840
1103
|
/**
|
|
841
|
-
* amostool
|
|
1104
|
+
* amostool 命名空间
|
|
842
1105
|
*/
|
|
843
1106
|
declare namespace amostool {}
|
|
844
1107
|
|
|
845
1108
|
/**
|
|
846
|
-
*
|
|
1109
|
+
* 通用工具函数命名空间
|
|
847
1110
|
*/
|
|
848
1111
|
declare namespace utils {
|
|
849
|
-
export function isString(value: any): boolean;
|
|
850
|
-
export function isArray(value: any): boolean;
|
|
851
|
-
export function isObject(value: any): boolean;
|
|
852
|
-
export function isBoolean(value: any): boolean;
|
|
853
|
-
export function isFunction(value: any): boolean;
|
|
854
1112
|
/**
|
|
855
|
-
*
|
|
1113
|
+
* 判断是否为字符串
|
|
1114
|
+
* @param value 待检测值
|
|
1115
|
+
*/
|
|
1116
|
+
export function isString(value: any): value is string;
|
|
1117
|
+
|
|
1118
|
+
/**
|
|
1119
|
+
* 判断是否为数组
|
|
1120
|
+
* @param value 待检测值
|
|
1121
|
+
*/
|
|
1122
|
+
export function isArray(value: any): value is any[];
|
|
1123
|
+
|
|
1124
|
+
/**
|
|
1125
|
+
* 判断是否为对象(排除数组、null)
|
|
1126
|
+
* @param value 待检测值
|
|
1127
|
+
*/
|
|
1128
|
+
export function isObject(value: any): value is object;
|
|
1129
|
+
|
|
1130
|
+
/**
|
|
1131
|
+
* 判断是否为布尔值
|
|
1132
|
+
* @param value 待检测值
|
|
1133
|
+
*/
|
|
1134
|
+
export function isBoolean(value: any): value is boolean;
|
|
1135
|
+
|
|
1136
|
+
/**
|
|
1137
|
+
* 判断是否为函数
|
|
1138
|
+
* @param value 待检测值
|
|
1139
|
+
*/
|
|
1140
|
+
export function isFunction(value: any): value is Function;
|
|
1141
|
+
|
|
1142
|
+
/**
|
|
1143
|
+
* 判断是否为数字,采用正则表达式进行判断
|
|
1144
|
+
* @param value 待检测值
|
|
856
1145
|
* 正则表达式:/^(\-|\+)?([0-9]+(\.[0-9]+)?|Infinity)$/
|
|
857
|
-
* @param {*} value
|
|
858
1146
|
*/
|
|
859
|
-
export function isNumber(value: any):
|
|
1147
|
+
export function isNumber(value: any): value is number;
|
|
1148
|
+
|
|
860
1149
|
/**
|
|
861
|
-
*
|
|
862
|
-
* @param value
|
|
1150
|
+
* 支持科学计数法的数字校验
|
|
1151
|
+
* @param value 待检测值
|
|
863
1152
|
*/
|
|
864
1153
|
export function isENumber(value: any): boolean;
|
|
1154
|
+
|
|
1155
|
+
/**
|
|
1156
|
+
* 判断是否为浮点数
|
|
1157
|
+
* @param value 待检测值
|
|
1158
|
+
*/
|
|
865
1159
|
export function isFloat(value: any): boolean;
|
|
1160
|
+
|
|
1161
|
+
/**
|
|
1162
|
+
* 判断是否为透明度值(0-1之间)
|
|
1163
|
+
* @param value 待检测值
|
|
1164
|
+
*/
|
|
866
1165
|
export function isOpacity(value: any): boolean;
|
|
1166
|
+
|
|
1167
|
+
/**
|
|
1168
|
+
* 转换为浮点数
|
|
1169
|
+
* @param value 待转换值
|
|
1170
|
+
*/
|
|
867
1171
|
export function toFloat(value: any): number;
|
|
868
|
-
|
|
869
|
-
|
|
870
|
-
|
|
1172
|
+
|
|
1173
|
+
/**
|
|
1174
|
+
* 判断是否为null
|
|
1175
|
+
* @param value 待检测值
|
|
1176
|
+
*/
|
|
1177
|
+
export function isNull(value: any): value is null;
|
|
1178
|
+
|
|
871
1179
|
/**
|
|
872
|
-
*
|
|
873
|
-
* @param value
|
|
1180
|
+
* 判断是否为undefined
|
|
1181
|
+
* @param value 待检测值
|
|
1182
|
+
*/
|
|
1183
|
+
export function isUndefined(value: any): value is undefined;
|
|
1184
|
+
|
|
1185
|
+
/**
|
|
1186
|
+
* 判断是否为null或undefined
|
|
1187
|
+
* @param value 待检测值
|
|
1188
|
+
*/
|
|
1189
|
+
export function isNil(value: any): value is null | undefined;
|
|
1190
|
+
|
|
1191
|
+
/**
|
|
1192
|
+
* 判断是否为空值(null、undefined、'')
|
|
1193
|
+
* @param value 待检测值
|
|
874
1194
|
* @example
|
|
875
1195
|
* isBlank(); // true
|
|
876
1196
|
* isBlank(void 0); // true
|
|
@@ -883,22 +1203,67 @@ declare namespace utils {
|
|
|
883
1203
|
* isBlank(true); // false
|
|
884
1204
|
*/
|
|
885
1205
|
export function isBlank(value: any): boolean;
|
|
886
|
-
|
|
1206
|
+
|
|
887
1207
|
/**
|
|
888
|
-
*
|
|
889
|
-
* @param obj
|
|
1208
|
+
* 检查对象是否存在指定路径
|
|
1209
|
+
* @param obj 目标对象
|
|
1210
|
+
* @param path 属性路径
|
|
1211
|
+
*/
|
|
1212
|
+
export function has(
|
|
1213
|
+
obj: object | any[],
|
|
1214
|
+
path: string | number | (string | number)[]
|
|
1215
|
+
): boolean;
|
|
1216
|
+
|
|
1217
|
+
/**
|
|
1218
|
+
* 获取对象的所有值
|
|
1219
|
+
* @param obj 目标对象
|
|
1220
|
+
*/
|
|
1221
|
+
export function values<T extends object>(obj: T): Array<T[keyof T]>;
|
|
1222
|
+
|
|
1223
|
+
/**
|
|
1224
|
+
* 空函数
|
|
890
1225
|
*/
|
|
891
|
-
export function values(obj: object): Array<any>;
|
|
892
1226
|
export function noop(): void;
|
|
1227
|
+
|
|
1228
|
+
/**
|
|
1229
|
+
* 判断是否为空(空数组、空对象、空字符串等)
|
|
1230
|
+
* @param value 待检测值
|
|
1231
|
+
*/
|
|
893
1232
|
export function isEmpty(value: any): boolean;
|
|
1233
|
+
|
|
1234
|
+
/**
|
|
1235
|
+
* 判断是否为空对象
|
|
1236
|
+
* @param value 待检测值
|
|
1237
|
+
*/
|
|
894
1238
|
export function isEmptyObject(value: any): boolean;
|
|
1239
|
+
|
|
1240
|
+
/**
|
|
1241
|
+
* 判断是否为DOM元素
|
|
1242
|
+
* @param value 待检测值
|
|
1243
|
+
*/
|
|
895
1244
|
export function isElement(value: any): boolean;
|
|
896
|
-
|
|
1245
|
+
|
|
1246
|
+
/**
|
|
1247
|
+
* 判断是否为HTML元素
|
|
1248
|
+
* @param value 待检测值
|
|
1249
|
+
*/
|
|
1250
|
+
export function isHTMLElement(value: any): value is HTMLElement;
|
|
1251
|
+
|
|
1252
|
+
/**
|
|
1253
|
+
* 判断是否为SVG元素
|
|
1254
|
+
* @param value 待检测值
|
|
1255
|
+
*/
|
|
897
1256
|
export function isSVGElement(value: any): boolean;
|
|
1257
|
+
|
|
1258
|
+
/**
|
|
1259
|
+
* 判断是否为DOM节点
|
|
1260
|
+
* @param value 待检测值
|
|
1261
|
+
*/
|
|
898
1262
|
export function isDom(value: any): boolean;
|
|
1263
|
+
|
|
899
1264
|
/**
|
|
900
|
-
*
|
|
901
|
-
* @param value
|
|
1265
|
+
* 检查是否为合法URL
|
|
1266
|
+
* @param value 待检测值
|
|
902
1267
|
* @example
|
|
903
1268
|
* isUrl('http://www.baidu.com') // true
|
|
904
1269
|
* isUrl('https://www.baidu.com') // true
|
|
@@ -910,49 +1275,76 @@ declare namespace utils {
|
|
|
910
1275
|
* isUrl('http://localhost:8080/aaa') // true
|
|
911
1276
|
*/
|
|
912
1277
|
export function isUrl(value: string): boolean;
|
|
1278
|
+
|
|
1279
|
+
/**
|
|
1280
|
+
* 判断是否为内置对象
|
|
1281
|
+
* @param value 待检测值
|
|
1282
|
+
*/
|
|
913
1283
|
export function isBuiltInObject(value: any): boolean;
|
|
1284
|
+
|
|
1285
|
+
/**
|
|
1286
|
+
* null值转换为默认值
|
|
1287
|
+
* @param str 待转换值
|
|
1288
|
+
*/
|
|
914
1289
|
export function null2default(str: any): any;
|
|
1290
|
+
|
|
915
1291
|
/**
|
|
916
1292
|
* 判断对象是不是Json
|
|
917
1293
|
* Object 对象,typeof === object && toString === '[object Object]'
|
|
918
|
-
* @param obj
|
|
919
|
-
* @returns boolean true 是 false不是
|
|
1294
|
+
* @param obj 待检测值
|
|
920
1295
|
*/
|
|
921
1296
|
export function isJson(obj: any): boolean;
|
|
922
1297
|
|
|
923
|
-
|
|
924
|
-
|
|
925
|
-
|
|
1298
|
+
/**
|
|
1299
|
+
* 判断是否为Symbol类型
|
|
1300
|
+
* @param obj 待检测值
|
|
1301
|
+
*/
|
|
1302
|
+
export function isSymbol(obj: any): obj is symbol;
|
|
1303
|
+
|
|
1304
|
+
/**
|
|
1305
|
+
* 判断是否为null或undefined
|
|
1306
|
+
* @param obj 待检测值
|
|
1307
|
+
*/
|
|
1308
|
+
export function isNullOrUndefined(obj: any): obj is null | undefined;
|
|
1309
|
+
|
|
1310
|
+
/**
|
|
1311
|
+
* 判断是否为Date对象
|
|
1312
|
+
* @param obj 待检测值
|
|
1313
|
+
*/
|
|
1314
|
+
export function isDate(obj: any): obj is Date;
|
|
926
1315
|
|
|
927
1316
|
/**
|
|
928
1317
|
* 判断string能否被转成json
|
|
929
1318
|
* 参数 str 如果不是 string 则直接返回 false
|
|
930
|
-
* @param
|
|
931
|
-
* @returns boolean
|
|
1319
|
+
* @param value 待检测值
|
|
932
1320
|
*/
|
|
933
1321
|
export function stringIsJson(value: any): boolean;
|
|
1322
|
+
|
|
934
1323
|
/**
|
|
935
1324
|
* 判断key是否在object内
|
|
936
1325
|
* (采用 in 判断,继承属性均会判断)
|
|
937
|
-
* @param keys
|
|
938
|
-
* @param obj 如果 obj 是 null or undefined, 或者 非 object,则直接 返回 false
|
|
1326
|
+
* @param keys 键名或键名数组
|
|
1327
|
+
* @param obj 目标对象 如果 obj 是 null or undefined, 或者 非 object,则直接 返回 false
|
|
939
1328
|
*/
|
|
940
1329
|
export function isKeyInObject(keys: string | string[], obj: any): boolean;
|
|
1330
|
+
|
|
941
1331
|
/**
|
|
942
1332
|
* 判断key是否在object内
|
|
943
1333
|
* (采用 hasOwnProperty 判断,继承属性不会判断)
|
|
944
|
-
* @param keys
|
|
945
|
-
* @param obj 如果 obj 是 null or undefined, 或者 非 object,则直接 返回 false
|
|
1334
|
+
* @param keys 键名或键名数组
|
|
1335
|
+
* @param obj 目标对象 如果 obj 是 null or undefined, 或者 非 object,则直接 返回 false
|
|
946
1336
|
*/
|
|
947
1337
|
export function isOwnKeyInObject(keys: string | string[], obj: any): boolean;
|
|
1338
|
+
|
|
948
1339
|
/**
|
|
949
|
-
*
|
|
950
|
-
* @param value
|
|
1340
|
+
* 判断是否为Promise对象
|
|
1341
|
+
* @param value 待检测值
|
|
951
1342
|
*/
|
|
952
|
-
export function isPromise(value: any):
|
|
1343
|
+
export function isPromise(value: any): value is Promise<any>;
|
|
1344
|
+
|
|
953
1345
|
/**
|
|
954
|
-
*
|
|
955
|
-
* @param value
|
|
1346
|
+
* 判断是否为正则表达式
|
|
1347
|
+
* @param value 待检测值
|
|
956
1348
|
* @example
|
|
957
1349
|
* isRegExp(undefined); // false
|
|
958
1350
|
* isRegExp(''); // false
|
|
@@ -963,10 +1355,17 @@ declare namespace utils {
|
|
|
963
1355
|
* isRegExp(new RegExp('aa')); // true
|
|
964
1356
|
* isRegExp({ test(){} }); // false
|
|
965
1357
|
*/
|
|
966
|
-
export function isRegExp(value: any):
|
|
1358
|
+
export function isRegExp(value: any): value is RegExp;
|
|
1359
|
+
|
|
1360
|
+
/**
|
|
1361
|
+
* 简单对象比较
|
|
1362
|
+
* @param objA 比较对象A
|
|
1363
|
+
* @param objB 比较对象B
|
|
1364
|
+
*/
|
|
967
1365
|
export function simpleEqual(objA: object, objB: object): boolean;
|
|
1366
|
+
|
|
968
1367
|
/**
|
|
969
|
-
*
|
|
1368
|
+
* 判断是否为图片路径
|
|
970
1369
|
* `/a/a/a.png|jpe?g|gif...`
|
|
971
1370
|
* `http://a.b/a.png|jpe?g|gif...`
|
|
972
1371
|
* `data:image/png|jpe?g|gif;base64,`
|
|
@@ -976,37 +1375,43 @@ declare namespace utils {
|
|
|
976
1375
|
* isImageSrc('http://a.b/a.png'); // true
|
|
977
1376
|
* isImageSrc('data:image/png|jpe?g|gif;base64,'); // true
|
|
978
1377
|
*/
|
|
979
|
-
export function isImageSrc(url:
|
|
1378
|
+
export function isImageSrc(url: string): boolean;
|
|
1379
|
+
|
|
980
1380
|
/**
|
|
981
|
-
*
|
|
982
|
-
* @param url
|
|
1381
|
+
* 判断是否为GIF图片
|
|
1382
|
+
* @param url 待检测URL
|
|
983
1383
|
* @example
|
|
984
1384
|
* isGIF('a.gif'); // true
|
|
985
1385
|
* isGIF('data:image/;base64,'); // true
|
|
986
1386
|
*/
|
|
987
|
-
export function isGIF(url:
|
|
1387
|
+
export function isGIF(url: string): boolean;
|
|
1388
|
+
|
|
988
1389
|
/**
|
|
989
1390
|
* 将数字部分内容转化为 *
|
|
990
|
-
* @param number
|
|
1391
|
+
* @param number 目标数字
|
|
991
1392
|
* @param start 起始位置 默认3
|
|
992
1393
|
* @param len 转换位数 默认4
|
|
993
1394
|
* @param sign 替换的字符 默认*
|
|
994
1395
|
*/
|
|
995
|
-
export function encodeNumber(
|
|
1396
|
+
export function encodeNumber(
|
|
1397
|
+
number: number,
|
|
1398
|
+
start?: number,
|
|
1399
|
+
len?: number,
|
|
1400
|
+
sign?: string
|
|
1401
|
+
): string;
|
|
996
1402
|
|
|
997
1403
|
/**
|
|
998
|
-
*
|
|
1404
|
+
* 获取文件扩展名
|
|
999
1405
|
*
|
|
1000
1406
|
* 可快速使用 `filePath.split('.').pop();` 获取扩展名
|
|
1001
|
-
* @param filePath
|
|
1002
|
-
* @return {String} ext
|
|
1407
|
+
* @param filePath 文件路径
|
|
1003
1408
|
* @example
|
|
1004
1409
|
* getFileExtension('a.png'); // png
|
|
1005
1410
|
* getFileExtension('a/a/a.png'); // png
|
|
1006
1411
|
* getFileExtension('a.a.a.png.jpg'); // jpg
|
|
1007
1412
|
* getFileExtension('a'); // ''
|
|
1008
1413
|
*/
|
|
1009
|
-
export function getFileExtension(filePath: string):
|
|
1414
|
+
export function getFileExtension(filePath: string): string;
|
|
1010
1415
|
|
|
1011
1416
|
/**
|
|
1012
1417
|
* 将指定 size 中的数据,转化为 byte
|
|
@@ -1014,7 +1419,6 @@ declare namespace utils {
|
|
|
1014
1419
|
* - 默认去除内部所有空格, 1024 MB -> 1024mb
|
|
1015
1420
|
* - 无单位或者 number 类型,将直接转化为 number值,默认当 byte 处理
|
|
1016
1421
|
* @param size 带有单位的 size,不带单位时,直接返回该值
|
|
1017
|
-
* @returns byte
|
|
1018
1422
|
* @example
|
|
1019
1423
|
* fileSizeToByte('1kb'); // 1024
|
|
1020
1424
|
* fileSizeToByte('1mb'); // 1048576
|
|
@@ -1024,15 +1428,33 @@ declare namespace utils {
|
|
|
1024
1428
|
* fileSizeToByte('123'); // 123
|
|
1025
1429
|
* fileSizeToByte(123); // 123
|
|
1026
1430
|
*/
|
|
1027
|
-
export function fileSizeToByte(size: string):
|
|
1431
|
+
export function fileSizeToByte(size: string | number): number;
|
|
1432
|
+
|
|
1433
|
+
/**
|
|
1434
|
+
* 数组some方法兼容实现
|
|
1435
|
+
* @param arr 目标数组
|
|
1436
|
+
* @param fun 回调函数
|
|
1437
|
+
*/
|
|
1438
|
+
export function some(
|
|
1439
|
+
arr: any[],
|
|
1440
|
+
fun: (value: any, index: number, array: any[]) => boolean,
|
|
1441
|
+
thisArg?: any
|
|
1442
|
+
): boolean;
|
|
1443
|
+
|
|
1444
|
+
/**
|
|
1445
|
+
* 数组every方法兼容实现
|
|
1446
|
+
* @param arr 目标数组
|
|
1447
|
+
* @param callbackfn 回调函数
|
|
1448
|
+
* @param thisArg this指向
|
|
1449
|
+
*/
|
|
1450
|
+
export function every(
|
|
1451
|
+
arr: any[],
|
|
1452
|
+
callbackfn: (value: any, index: number, array: any[]) => boolean,
|
|
1453
|
+
thisArg?: any
|
|
1454
|
+
): boolean;
|
|
1028
1455
|
|
|
1029
|
-
export function some(arr: Array<any>, fun: Function /*, thisArg */): boolean;
|
|
1030
|
-
export function every(arr: Array<any>, callbackfn: Function, thisArg): boolean;
|
|
1031
|
-
export function reduce(arr: Array<any>, callback: Function /*, initialValue*/);
|
|
1032
|
-
export function parse2string(obj: object | Array<any>): string;
|
|
1033
|
-
export function parse2object(str: string): object | Array<any>;
|
|
1034
|
-
export function dataToArray(vars: any): Array<any>;
|
|
1035
1456
|
/**
|
|
1457
|
+
* 数组reduce方法兼容实现
|
|
1036
1458
|
* Those data types can be cloned:
|
|
1037
1459
|
* Plain object, Array, TypedArray, number, string, null, undefined.
|
|
1038
1460
|
* Those data types will be assgined using the orginal data:
|
|
@@ -1045,35 +1467,85 @@ declare namespace utils {
|
|
|
1045
1467
|
* (There might be a large number of date in `series.data`).
|
|
1046
1468
|
* So date should not be modified in and out of echarts.
|
|
1047
1469
|
*
|
|
1048
|
-
* @param
|
|
1049
|
-
* @
|
|
1470
|
+
* @param arr 目标数组
|
|
1471
|
+
* @param callback 回调函数
|
|
1472
|
+
* @param initialValue 初始值
|
|
1473
|
+
*/
|
|
1474
|
+
export function reduce<T, U = T>(
|
|
1475
|
+
arr: T[],
|
|
1476
|
+
callback: (
|
|
1477
|
+
accumulator: U,
|
|
1478
|
+
currentValue: T,
|
|
1479
|
+
currentIndex: number,
|
|
1480
|
+
array: T[]
|
|
1481
|
+
) => U,
|
|
1482
|
+
initialValue?: U
|
|
1483
|
+
): U;
|
|
1484
|
+
|
|
1485
|
+
/**
|
|
1486
|
+
* 转换为字符串
|
|
1487
|
+
* @param obj 目标对象/数组
|
|
1050
1488
|
*/
|
|
1051
|
-
export function
|
|
1489
|
+
export function parse2string(obj: object | any[]): string;
|
|
1490
|
+
|
|
1491
|
+
/**
|
|
1492
|
+
* 解析为对象/数组
|
|
1493
|
+
* @param str JSON字符串
|
|
1494
|
+
*/
|
|
1495
|
+
export function parse2object(str: string): object | any[];
|
|
1496
|
+
|
|
1497
|
+
/**
|
|
1498
|
+
* 转换为数组
|
|
1499
|
+
* @param vars 目标值
|
|
1500
|
+
*/
|
|
1501
|
+
export function dataToArray(vars: any): any[];
|
|
1502
|
+
|
|
1052
1503
|
/**
|
|
1053
|
-
*
|
|
1054
|
-
* @param source
|
|
1055
|
-
* @param [overwrite=false]
|
|
1056
|
-
* @return target
|
|
1504
|
+
* 克隆对象/数组
|
|
1505
|
+
* @param source 源对象
|
|
1057
1506
|
*/
|
|
1058
|
-
export function
|
|
1507
|
+
export function clone<T>(source: T): T;
|
|
1508
|
+
|
|
1059
1509
|
/**
|
|
1060
|
-
*
|
|
1061
|
-
* @param
|
|
1062
|
-
* @
|
|
1510
|
+
* 合并对象
|
|
1511
|
+
* @param target 目标对象
|
|
1512
|
+
* @param source 源对象
|
|
1513
|
+
* @param overwrite 是否覆盖已有属性
|
|
1063
1514
|
*/
|
|
1064
|
-
export function
|
|
1515
|
+
export function merge<T extends object>(
|
|
1516
|
+
target: T,
|
|
1517
|
+
source: Partial<T>,
|
|
1518
|
+
overwrite?: boolean
|
|
1519
|
+
): T;
|
|
1520
|
+
|
|
1065
1521
|
/**
|
|
1522
|
+
* 合并多个对象
|
|
1523
|
+
* @param targetAndSources 目标对象和源对象数组 he first item is target, and the rests are source.
|
|
1524
|
+
* @param overwrite 是否覆盖已有属性
|
|
1525
|
+
*/
|
|
1526
|
+
export function mergeAll<T extends object>(
|
|
1527
|
+
targetAndSources: [T, ...Partial<T>[]],
|
|
1528
|
+
overwrite?: boolean
|
|
1529
|
+
): T;
|
|
1530
|
+
|
|
1531
|
+
/**
|
|
1532
|
+
* 比较子对象属性是否相等
|
|
1533
|
+
*
|
|
1066
1534
|
* 比较 objTarget 中的所有属性值,是否在 objSource 中相等
|
|
1067
|
-
* @param objSource
|
|
1068
|
-
* @param objTarget
|
|
1535
|
+
* @param objSource 源对象
|
|
1536
|
+
* @param objTarget 目标对象
|
|
1069
1537
|
*/
|
|
1070
|
-
export function subObjectEqual(
|
|
1538
|
+
export function subObjectEqual(
|
|
1539
|
+
objSource: Record<string, any>,
|
|
1540
|
+
objTarget: Record<string, any>
|
|
1541
|
+
): boolean;
|
|
1542
|
+
|
|
1071
1543
|
/**
|
|
1072
|
-
*
|
|
1073
|
-
*
|
|
1544
|
+
* 校验文件名合法性
|
|
1545
|
+
*
|
|
1074
1546
|
* 校验中使用的正则表达式: `/[\\/:\*\?"<>\|]/g`
|
|
1075
|
-
* @param str
|
|
1076
|
-
* @param maxLen
|
|
1547
|
+
* @param str 文件名
|
|
1548
|
+
* @param maxLen 最大长度,默认259
|
|
1077
1549
|
* @example
|
|
1078
1550
|
* checkFileName('example.txt'); // true
|
|
1079
1551
|
* checkFileName('con\\example.txt'); // false
|
|
@@ -1083,6 +1555,6 @@ declare namespace utils {
|
|
|
1083
1555
|
* checkFileName('example.txt.'); // true
|
|
1084
1556
|
* checkFileName('example..............txt'); // true
|
|
1085
1557
|
*/
|
|
1086
|
-
export function checkFileName(str:
|
|
1558
|
+
export function checkFileName(str: string | number, maxLen?: number): boolean;
|
|
1087
1559
|
}
|
|
1088
1560
|
|