esexts 2.2.1 → 2.2.2
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/package.json +4 -4
- package/types.d.ts +1654 -1654
- /package/dist/{esexts.umd.cjs → esexts.umd.js} +0 -0
package/types.d.ts
CHANGED
|
@@ -1,1654 +1,1654 @@
|
|
|
1
|
-
// Copyright 2021 The dotcoo <dotcoo@163.com>. All rights reserved.
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* ES 扩展类型定义
|
|
5
|
-
* 为 JavaScript 内置对象添加扩展方法
|
|
6
|
-
*/
|
|
7
|
-
declare global {
|
|
8
|
-
/**
|
|
9
|
-
* Object 构造函数扩展
|
|
10
|
-
*/
|
|
11
|
-
interface ObjectConstructor {
|
|
12
|
-
/**
|
|
13
|
-
* 创建一个新的 Object 实例
|
|
14
|
-
*/
|
|
15
|
-
new(): Record<string, any>;
|
|
16
|
-
|
|
17
|
-
/**
|
|
18
|
-
* 检查一个值是否为对象
|
|
19
|
-
* @param o 要检查的值
|
|
20
|
-
* @returns 如果是对象返回 true,否则返回 false
|
|
21
|
-
*/
|
|
22
|
-
isObject(o: any): boolean;
|
|
23
|
-
|
|
24
|
-
/**
|
|
25
|
-
* 合并多个对象
|
|
26
|
-
* @param args 要合并的对象列表
|
|
27
|
-
* @returns 合并后的新对象
|
|
28
|
-
*/
|
|
29
|
-
merge(...args: Record<string, any>[]): Record<string, any>;
|
|
30
|
-
|
|
31
|
-
/**
|
|
32
|
-
* 连接多个对象
|
|
33
|
-
* @param args 要连接的对象列表, 数组会合并, 而不是覆盖
|
|
34
|
-
* @returns 连接后的新对象
|
|
35
|
-
*/
|
|
36
|
-
concat(...args: Record<string, any>[]): Record<string, any>;
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
/**
|
|
40
|
-
* Object 实例扩展
|
|
41
|
-
*/
|
|
42
|
-
interface Object {
|
|
43
|
-
/**
|
|
44
|
-
* 克隆对象
|
|
45
|
-
* @returns 克隆后的新对象
|
|
46
|
-
*/
|
|
47
|
-
$clone(): Record<string, any>;
|
|
48
|
-
|
|
49
|
-
/**
|
|
50
|
-
* 获取对象的长度(属性数量)
|
|
51
|
-
* @returns 对象的属性数量
|
|
52
|
-
*/
|
|
53
|
-
$length(): number;
|
|
54
|
-
|
|
55
|
-
/**
|
|
56
|
-
* 获取对象的键值对迭代器
|
|
57
|
-
* @returns 键值对迭代器
|
|
58
|
-
*/
|
|
59
|
-
$entries(): [string, any][];
|
|
60
|
-
|
|
61
|
-
/**
|
|
62
|
-
* 获取对象的键迭代器
|
|
63
|
-
* @returns 键迭代器
|
|
64
|
-
*/
|
|
65
|
-
$keys(): string[];
|
|
66
|
-
|
|
67
|
-
/**
|
|
68
|
-
* 获取对象的值迭代器
|
|
69
|
-
* @returns 值迭代器
|
|
70
|
-
*/
|
|
71
|
-
$values(): any[];
|
|
72
|
-
|
|
73
|
-
/**
|
|
74
|
-
* 分配属性到对象
|
|
75
|
-
* @param args 要分配的属性源
|
|
76
|
-
* @returns 分配后的对象
|
|
77
|
-
*/
|
|
78
|
-
$assign(...sources: any[]): Record<string, any>;
|
|
79
|
-
|
|
80
|
-
/**
|
|
81
|
-
* 将值转换为 JSON 字符串
|
|
82
|
-
* @param v 要转换的值
|
|
83
|
-
* @param replacer 替换函数或数组
|
|
84
|
-
* @param space 缩进空格
|
|
85
|
-
* @returns JSON 字符串
|
|
86
|
-
*/
|
|
87
|
-
$stringify(replacer?: any, space?: string | number): string;
|
|
88
|
-
|
|
89
|
-
/**
|
|
90
|
-
* 合并多个对象到当前对象
|
|
91
|
-
* @param args 要合并的对象列表
|
|
92
|
-
* @returns 合并后的对象
|
|
93
|
-
*/
|
|
94
|
-
$merge(...args: Record<string, any>[]): Record<string, any>;
|
|
95
|
-
|
|
96
|
-
/**
|
|
97
|
-
* 连接多个对象到当前对象
|
|
98
|
-
* @param args 要连接的对象列表, 数组会合并, 而不是覆盖
|
|
99
|
-
* @returns 连接后的对象
|
|
100
|
-
*/
|
|
101
|
-
$concat(...args: Record<string, any>[]): Record<string, any>;
|
|
102
|
-
|
|
103
|
-
/**
|
|
104
|
-
* 检查对象是否为空
|
|
105
|
-
* @returns 如果对象为空返回 true,否则返回 false
|
|
106
|
-
*/
|
|
107
|
-
$empty(): boolean;
|
|
108
|
-
|
|
109
|
-
/**
|
|
110
|
-
* 检查对象是否包含指定键
|
|
111
|
-
* @param key 要检查的键
|
|
112
|
-
* @returns 如果包含指定键返回 true,否则返回 false
|
|
113
|
-
*/
|
|
114
|
-
$has(key: string): boolean;
|
|
115
|
-
|
|
116
|
-
/**
|
|
117
|
-
* 从对象中选取指定键的属性
|
|
118
|
-
* @param keys 要选取的键列表
|
|
119
|
-
* @returns 包含指定键属性的新对象
|
|
120
|
-
*/
|
|
121
|
-
$pick(...keys: string[]): Record<string, any>;
|
|
122
|
-
|
|
123
|
-
/**
|
|
124
|
-
* 从对象中排除指定键的属性
|
|
125
|
-
* @param keys 要排除的键列表
|
|
126
|
-
* @returns 排除指定键属性的新对象
|
|
127
|
-
*/
|
|
128
|
-
$omit(...keys: string[]): Record<string, any>;
|
|
129
|
-
|
|
130
|
-
/**
|
|
131
|
-
* 获取对象的属性
|
|
132
|
-
* @param key 属性键
|
|
133
|
-
* @returns 属性值
|
|
134
|
-
*/
|
|
135
|
-
$attr(key: string): any;
|
|
136
|
-
|
|
137
|
-
/**
|
|
138
|
-
* 设置对象的属性
|
|
139
|
-
* @param key 属性键
|
|
140
|
-
* @param val 属性值
|
|
141
|
-
* @returns 当前对象
|
|
142
|
-
*/
|
|
143
|
-
$attr(key: string, val: any): this;
|
|
144
|
-
|
|
145
|
-
/**
|
|
146
|
-
* 获取对象的属性(带默认值)
|
|
147
|
-
* @param key 属性键
|
|
148
|
-
* @param val 属性值
|
|
149
|
-
* @param defval 默认值
|
|
150
|
-
* @returns 属性值
|
|
151
|
-
*/
|
|
152
|
-
$attr(key: string, defval: any, options: { defval: any }): any;
|
|
153
|
-
|
|
154
|
-
/**
|
|
155
|
-
* 设置对象的属性(带存在性检查)
|
|
156
|
-
* @param key 属性键
|
|
157
|
-
* @param val 属性值
|
|
158
|
-
* @param exists 是否检查属性是否存在
|
|
159
|
-
* @returns 当前对象
|
|
160
|
-
*/
|
|
161
|
-
$attr(key: string, val: any, options: { exists: boolean }): this;
|
|
162
|
-
|
|
163
|
-
/**
|
|
164
|
-
* 设置对象的属性(带存在性检查)
|
|
165
|
-
* @param key 属性键
|
|
166
|
-
* @param val 属性值
|
|
167
|
-
* @param define 属性定义
|
|
168
|
-
* @returns 当前对象
|
|
169
|
-
*/
|
|
170
|
-
$attr(key: string, val: any, options: { define: any }): this;
|
|
171
|
-
|
|
172
|
-
/**
|
|
173
|
-
* 属性四则运算(带定义选项)
|
|
174
|
-
* @param key 属性键
|
|
175
|
-
* @param val 属性值
|
|
176
|
-
* @param defval 默认值
|
|
177
|
-
* @param add 加法值
|
|
178
|
-
* @param sub 减法值
|
|
179
|
-
* @param mul 乘法值
|
|
180
|
-
* @param div 除法值
|
|
181
|
-
* @returns 当前对象
|
|
182
|
-
*/
|
|
183
|
-
$attr(key: string, val: any, options: { defval: any, add: number, sub: number, mul: number, div: number }): this;
|
|
184
|
-
|
|
185
|
-
/**
|
|
186
|
-
* 通过管道函数处理对象
|
|
187
|
-
* @param pipe 管道函数
|
|
188
|
-
* @param args 额外参数
|
|
189
|
-
* @returns 管道函数的返回值
|
|
190
|
-
*/
|
|
191
|
-
$pipe<T>(pipe: (value: this, ...args: any[]) => T, ...args: any[]): T;
|
|
192
|
-
|
|
193
|
-
/**
|
|
194
|
-
* 执行副作用函数并返回原对象
|
|
195
|
-
* @param tee 副作用函数
|
|
196
|
-
* @param args 额外参数
|
|
197
|
-
* @returns 原对象
|
|
198
|
-
*/
|
|
199
|
-
$tee(tee: (value: this, ...args: any[]) => void, ...args: any[]): this;
|
|
200
|
-
|
|
201
|
-
/**
|
|
202
|
-
* 将对象转换为数组
|
|
203
|
-
* @returns 对象转换后的数组
|
|
204
|
-
*/
|
|
205
|
-
$toArray(): any[];
|
|
206
|
-
|
|
207
|
-
/**
|
|
208
|
-
* 输出调试信息
|
|
209
|
-
* @param args 调试信息
|
|
210
|
-
* @returns 原对象
|
|
211
|
-
*/
|
|
212
|
-
$debug(...args: any[]): this;
|
|
213
|
-
|
|
214
|
-
/**
|
|
215
|
-
* 输出日志信息
|
|
216
|
-
* @param args 日志信息
|
|
217
|
-
* @returns 原对象
|
|
218
|
-
*/
|
|
219
|
-
$log(...args: any[]): this;
|
|
220
|
-
|
|
221
|
-
/**
|
|
222
|
-
* 输出信息
|
|
223
|
-
* @param args 信息
|
|
224
|
-
* @returns 原对象
|
|
225
|
-
*/
|
|
226
|
-
$info(...args: any[]): this;
|
|
227
|
-
|
|
228
|
-
/**
|
|
229
|
-
* 输出警告信息
|
|
230
|
-
* @param args 警告信息
|
|
231
|
-
* @returns 原对象
|
|
232
|
-
*/
|
|
233
|
-
$warn(...args: any[]): this;
|
|
234
|
-
|
|
235
|
-
/**
|
|
236
|
-
* 输出错误信息
|
|
237
|
-
* @param args 错误信息
|
|
238
|
-
* @returns 原对象
|
|
239
|
-
*/
|
|
240
|
-
$error(...args: any[]): this;
|
|
241
|
-
|
|
242
|
-
/**
|
|
243
|
-
* 输出对象的详细信息
|
|
244
|
-
* @param args 额外参数
|
|
245
|
-
* @returns 原对象
|
|
246
|
-
*/
|
|
247
|
-
$dir(...args: any[]): this;
|
|
248
|
-
|
|
249
|
-
/**
|
|
250
|
-
* 触发调试器断点
|
|
251
|
-
* @param args 额外参数
|
|
252
|
-
* @returns 原对象
|
|
253
|
-
*/
|
|
254
|
-
$debugger(...args: any[]): this;
|
|
255
|
-
|
|
256
|
-
/**
|
|
257
|
-
* 获取对象的父级链
|
|
258
|
-
* @param self 是否包含自身
|
|
259
|
-
* @param depth 深度限制
|
|
260
|
-
* @param parent 父级属性名
|
|
261
|
-
* @returns 父级链数组
|
|
262
|
-
*/
|
|
263
|
-
$getParents(self?: boolean, depth?: number, parent?: string): any[];
|
|
264
|
-
|
|
265
|
-
/**
|
|
266
|
-
* 获取对象的子级链
|
|
267
|
-
* @param self 是否包含自身
|
|
268
|
-
* @param depth 深度限制
|
|
269
|
-
* @param children 子级属性名
|
|
270
|
-
* @returns 子级链数组
|
|
271
|
-
*/
|
|
272
|
-
$getChildrens(self?: boolean, depth?: number, children?: string): any[];
|
|
273
|
-
|
|
274
|
-
/**
|
|
275
|
-
* 在树结构中查找节点
|
|
276
|
-
* @param cb 查找回调函数
|
|
277
|
-
* @param self 是否包含自身
|
|
278
|
-
* @param depth 深度限制
|
|
279
|
-
* @param children 子级属性名
|
|
280
|
-
* @returns 找到的节点
|
|
281
|
-
*/
|
|
282
|
-
$tree$find(cb: (node: any) => boolean, self?: boolean, depth?: number, children?: string): any;
|
|
283
|
-
|
|
284
|
-
/**
|
|
285
|
-
* 遍历树结构中的节点
|
|
286
|
-
* @param cb 遍历回调函数
|
|
287
|
-
* @param self 是否包含自身
|
|
288
|
-
* @param depth 深度限制
|
|
289
|
-
* @param children 子级属性名
|
|
290
|
-
*/
|
|
291
|
-
$tree$each(cb: (node: any) => void, self?: boolean, depth?: number, children?: string): void;
|
|
292
|
-
|
|
293
|
-
/**
|
|
294
|
-
* 映射树结构中的节点
|
|
295
|
-
* @param cb 映射回调函数
|
|
296
|
-
* @param self 是否包含自身
|
|
297
|
-
* @param depth 深度限制
|
|
298
|
-
* @param children 子级属性名
|
|
299
|
-
* @param empty 空值处理
|
|
300
|
-
* @returns 映射后的树结构
|
|
301
|
-
*/
|
|
302
|
-
$tree$map(cb: (node: any) => any, self?: boolean, depth?: number, children?: string, empty?: any): any;
|
|
303
|
-
}
|
|
304
|
-
|
|
305
|
-
/**
|
|
306
|
-
* Number 实例扩展
|
|
307
|
-
*/
|
|
308
|
-
interface Number {
|
|
309
|
-
/**
|
|
310
|
-
* 向上取整
|
|
311
|
-
* @returns 向上取整后的值
|
|
312
|
-
*/
|
|
313
|
-
ceil(): number;
|
|
314
|
-
|
|
315
|
-
/**
|
|
316
|
-
* 向下取整
|
|
317
|
-
* @returns 向下取整后的值
|
|
318
|
-
*/
|
|
319
|
-
floor(): number;
|
|
320
|
-
|
|
321
|
-
/**
|
|
322
|
-
* 截断小数部分
|
|
323
|
-
* @returns 截断后的值
|
|
324
|
-
*/
|
|
325
|
-
trunc(): number;
|
|
326
|
-
|
|
327
|
-
/**
|
|
328
|
-
* 获取绝对值
|
|
329
|
-
* @returns 绝对值
|
|
330
|
-
*/
|
|
331
|
-
abs(): number;
|
|
332
|
-
|
|
333
|
-
/**
|
|
334
|
-
* 获取最大值
|
|
335
|
-
* @param args 比较值列表
|
|
336
|
-
* @returns 最大值
|
|
337
|
-
*/
|
|
338
|
-
max(...args: number[]): number;
|
|
339
|
-
|
|
340
|
-
/**
|
|
341
|
-
* 获取最小值
|
|
342
|
-
* @param args 比较值列表
|
|
343
|
-
* @returns 最小值
|
|
344
|
-
*/
|
|
345
|
-
min(...args: number[]): number;
|
|
346
|
-
|
|
347
|
-
/**
|
|
348
|
-
* 固定小数位数
|
|
349
|
-
* @param decimal 小数位数
|
|
350
|
-
* @returns 固定小数位数后的值
|
|
351
|
-
*/
|
|
352
|
-
fixed(decimal?: number): number;
|
|
353
|
-
|
|
354
|
-
/**
|
|
355
|
-
* 四舍五入
|
|
356
|
-
* @param precision 精度
|
|
357
|
-
* @returns 四舍五入后的值
|
|
358
|
-
*/
|
|
359
|
-
round(precision?: number): number;
|
|
360
|
-
|
|
361
|
-
/**
|
|
362
|
-
* 加法运算
|
|
363
|
-
* @param v 加数
|
|
364
|
-
* @returns 加法结果
|
|
365
|
-
*/
|
|
366
|
-
add(v: number): number;
|
|
367
|
-
|
|
368
|
-
/**
|
|
369
|
-
* 使用函数进行加法运算
|
|
370
|
-
* @param v 加法函数
|
|
371
|
-
* @param args 函数参数
|
|
372
|
-
* @returns 加法结果
|
|
373
|
-
*/
|
|
374
|
-
add(v: ((v:number, ...args: any[]) => number), ...args: any[]): number;
|
|
375
|
-
|
|
376
|
-
/**
|
|
377
|
-
* 减法运算
|
|
378
|
-
* @param v 减数
|
|
379
|
-
* @returns 减法结果
|
|
380
|
-
*/
|
|
381
|
-
sub(v: number): number;
|
|
382
|
-
|
|
383
|
-
/**
|
|
384
|
-
* 使用函数进行减法运算
|
|
385
|
-
* @param v 减法函数
|
|
386
|
-
* @param args 函数参数
|
|
387
|
-
* @returns 减法结果
|
|
388
|
-
*/
|
|
389
|
-
sub(v: ((v:number, ...args: any[]) => number), ...args: any[]): number;
|
|
390
|
-
|
|
391
|
-
/**
|
|
392
|
-
* 乘法运算
|
|
393
|
-
* @param v 乘数
|
|
394
|
-
* @returns 乘法结果
|
|
395
|
-
*/
|
|
396
|
-
mul(v: number): number;
|
|
397
|
-
|
|
398
|
-
/**
|
|
399
|
-
* 使用函数进行乘法运算
|
|
400
|
-
* @param v 乘法函数
|
|
401
|
-
* @param args 函数参数
|
|
402
|
-
* @returns 乘法结果
|
|
403
|
-
*/
|
|
404
|
-
mul(v: ((v:number, ...args: any[]) => number), ...args: any[]): number;
|
|
405
|
-
|
|
406
|
-
/**
|
|
407
|
-
* 除法运算
|
|
408
|
-
* @param v 除数
|
|
409
|
-
* @returns 除法结果
|
|
410
|
-
*/
|
|
411
|
-
div(v: number): number;
|
|
412
|
-
|
|
413
|
-
/**
|
|
414
|
-
* 使用函数进行除法运算
|
|
415
|
-
* @param v 除法函数
|
|
416
|
-
* @param args 函数参数
|
|
417
|
-
* @returns 除法结果
|
|
418
|
-
*/
|
|
419
|
-
div(v: ((v:number, ...args: any[]) => number), ...args: any[]): number;
|
|
420
|
-
|
|
421
|
-
/**
|
|
422
|
-
* 进制转换
|
|
423
|
-
* @param base 目标进制
|
|
424
|
-
* @returns 转换后的字符串
|
|
425
|
-
*/
|
|
426
|
-
baseConvert(base?: number): string;
|
|
427
|
-
|
|
428
|
-
/**
|
|
429
|
-
* 单位转换
|
|
430
|
-
* @param units 单位定义
|
|
431
|
-
* @param decimal 小数位数
|
|
432
|
-
* @returns 转换后的字符串
|
|
433
|
-
*/
|
|
434
|
-
unit(units: Record<string, number>, decimal?: number): string;
|
|
435
|
-
|
|
436
|
-
/**
|
|
437
|
-
* 单位转换(支持数组输出)
|
|
438
|
-
* @param units 单位定义
|
|
439
|
-
* @param array 是否返回数组
|
|
440
|
-
* @returns 转换后的字符串或数组
|
|
441
|
-
*/
|
|
442
|
-
units(units: Record<string, number>, array?: boolean): string | [number, string][];
|
|
443
|
-
|
|
444
|
-
/**
|
|
445
|
-
* 转换为日期对象
|
|
446
|
-
* @returns 日期对象
|
|
447
|
-
*/
|
|
448
|
-
toDate(): Date;
|
|
449
|
-
}
|
|
450
|
-
|
|
451
|
-
/**
|
|
452
|
-
* BigInt 实例扩展
|
|
453
|
-
*/
|
|
454
|
-
interface BigInt {
|
|
455
|
-
/**
|
|
456
|
-
* 转换为 JSON 格式
|
|
457
|
-
* @returns 转换后的数字或字符串
|
|
458
|
-
*/
|
|
459
|
-
toJSON(): number | string;
|
|
460
|
-
}
|
|
461
|
-
|
|
462
|
-
/**
|
|
463
|
-
* String 构造函数扩展
|
|
464
|
-
*/
|
|
465
|
-
interface StringConstructor {
|
|
466
|
-
/**
|
|
467
|
-
* 创建一个新的 String 实例
|
|
468
|
-
*/
|
|
469
|
-
new(): string;
|
|
470
|
-
}
|
|
471
|
-
|
|
472
|
-
/**
|
|
473
|
-
* String 实例扩展
|
|
474
|
-
*/
|
|
475
|
-
interface String {
|
|
476
|
-
/**
|
|
477
|
-
* 获取字符串长度
|
|
478
|
-
* @returns 字符串长度
|
|
479
|
-
*/
|
|
480
|
-
$length(): number;
|
|
481
|
-
|
|
482
|
-
/**
|
|
483
|
-
* 截取子字符串
|
|
484
|
-
* @param s 开始位置
|
|
485
|
-
* @param e 结束位置
|
|
486
|
-
* @returns 截取的子字符串
|
|
487
|
-
*/
|
|
488
|
-
$substring(s?: number, e?: number): string;
|
|
489
|
-
|
|
490
|
-
/**
|
|
491
|
-
* 截取子字符串(从指定位置开始)
|
|
492
|
-
* @param s 开始位置
|
|
493
|
-
* @param e 长度
|
|
494
|
-
* @returns 截取的子字符串
|
|
495
|
-
*/
|
|
496
|
-
$substr(s?: number, e?: number): string;
|
|
497
|
-
|
|
498
|
-
/**
|
|
499
|
-
* 分割字符串
|
|
500
|
-
* @param s 分隔符
|
|
501
|
-
* @param n 分割数量
|
|
502
|
-
* @returns 分割后的数组
|
|
503
|
-
*/
|
|
504
|
-
$split(s?: string, n?: number): string[];
|
|
505
|
-
|
|
506
|
-
/**
|
|
507
|
-
* 分割字符串并转换为数字数组
|
|
508
|
-
* @param s 分隔符
|
|
509
|
-
* @returns 数字数组
|
|
510
|
-
*/
|
|
511
|
-
$split$number(s?: string): number[];
|
|
512
|
-
|
|
513
|
-
/**
|
|
514
|
-
* 按指定长度分割字符串
|
|
515
|
-
* @param n 分割长度
|
|
516
|
-
* @returns 分割后的数组
|
|
517
|
-
*/
|
|
518
|
-
$split$segment(n?: number): string[];
|
|
519
|
-
|
|
520
|
-
/**
|
|
521
|
-
* 格式化字符串
|
|
522
|
-
* @param args 格式化参数
|
|
523
|
-
* @returns 格式化后的字符串
|
|
524
|
-
*/
|
|
525
|
-
sprintf(...args: any[]): string;
|
|
526
|
-
|
|
527
|
-
/**
|
|
528
|
-
* 提取两个字符串之间的内容
|
|
529
|
-
* @param begin 开始字符串
|
|
530
|
-
* @param end 结束字符串
|
|
531
|
-
* @param n 提取数量
|
|
532
|
-
* @param position 开始位置
|
|
533
|
-
* @returns 提取的内容
|
|
534
|
-
*/
|
|
535
|
-
subOf(begin: string, end: string, n?: number, position?: number): string;
|
|
536
|
-
|
|
537
|
-
/**
|
|
538
|
-
* 从末尾提取两个字符串之间的内容
|
|
539
|
-
* @param begin 开始字符串
|
|
540
|
-
* @param end 结束字符串
|
|
541
|
-
* @param n 提取数量
|
|
542
|
-
* @param position 开始位置
|
|
543
|
-
* @returns 提取的内容
|
|
544
|
-
*/
|
|
545
|
-
lastSubOf(begin: string, end: string, n?: number, position?: number): string;
|
|
546
|
-
|
|
547
|
-
/**
|
|
548
|
-
* 驼峰命名转换为下划线命名
|
|
549
|
-
* @returns 下划线命名的字符串
|
|
550
|
-
*/
|
|
551
|
-
camel2under(): string;
|
|
552
|
-
|
|
553
|
-
/**
|
|
554
|
-
* 下划线命名转换为驼峰命名
|
|
555
|
-
* @returns 驼峰命名的字符串
|
|
556
|
-
*/
|
|
557
|
-
under2camel(): string;
|
|
558
|
-
|
|
559
|
-
/**
|
|
560
|
-
* 驼峰命名转换为帕斯卡命名
|
|
561
|
-
* @returns 帕斯卡命名的字符串
|
|
562
|
-
*/
|
|
563
|
-
camel2pascal(): string;
|
|
564
|
-
|
|
565
|
-
/**
|
|
566
|
-
* 帕斯卡命名转换为驼峰命名
|
|
567
|
-
* @returns 驼峰命名的字符串
|
|
568
|
-
*/
|
|
569
|
-
pascal2camel(): string;
|
|
570
|
-
|
|
571
|
-
/**
|
|
572
|
-
* 下划线命名转换为短横线命名
|
|
573
|
-
* @returns 短横线命名的字符串
|
|
574
|
-
*/
|
|
575
|
-
under2kebab(): string;
|
|
576
|
-
|
|
577
|
-
/**
|
|
578
|
-
* 短横线命名转换为下划线命名
|
|
579
|
-
* @returns 下划线命名的字符串
|
|
580
|
-
*/
|
|
581
|
-
kebab2under(): string;
|
|
582
|
-
|
|
583
|
-
/**
|
|
584
|
-
* 进制转换
|
|
585
|
-
* @param base 目标进制
|
|
586
|
-
* @returns 转换后的字符串
|
|
587
|
-
*/
|
|
588
|
-
baseConvert(base?: number): string;
|
|
589
|
-
|
|
590
|
-
/**
|
|
591
|
-
* 固定小数位数
|
|
592
|
-
* @param decimal 小数位数
|
|
593
|
-
* @returns 固定小数位数后的字符串
|
|
594
|
-
*/
|
|
595
|
-
fixed(decimal?: number): string;
|
|
596
|
-
|
|
597
|
-
/**
|
|
598
|
-
* 转换为日期对象
|
|
599
|
-
* @returns 日期对象
|
|
600
|
-
*/
|
|
601
|
-
toDate(): Date;
|
|
602
|
-
|
|
603
|
-
/**
|
|
604
|
-
* 转换为 Uint8Array
|
|
605
|
-
* @returns Uint8Array
|
|
606
|
-
*/
|
|
607
|
-
toUint8Array(): Uint8Array;
|
|
608
|
-
|
|
609
|
-
/**
|
|
610
|
-
* 十六进制编码
|
|
611
|
-
* @returns 十六进制编码的字符串
|
|
612
|
-
*/
|
|
613
|
-
hexencode(): string;
|
|
614
|
-
|
|
615
|
-
/**
|
|
616
|
-
* 十六进制解码
|
|
617
|
-
* @returns 解码后的字符串
|
|
618
|
-
*/
|
|
619
|
-
hexdecode(): string;
|
|
620
|
-
|
|
621
|
-
/**
|
|
622
|
-
* Base64 编码
|
|
623
|
-
* @returns Base64 编码的字符串
|
|
624
|
-
*/
|
|
625
|
-
base64encode(): string;
|
|
626
|
-
|
|
627
|
-
/**
|
|
628
|
-
* Base64 解码
|
|
629
|
-
* @returns 解码后的字符串
|
|
630
|
-
*/
|
|
631
|
-
base64decode(): string;
|
|
632
|
-
}
|
|
633
|
-
|
|
634
|
-
/**
|
|
635
|
-
* Array 构造函数扩展
|
|
636
|
-
*/
|
|
637
|
-
interface ArrayConstructor {
|
|
638
|
-
/**
|
|
639
|
-
* 创建一个新的数组实例
|
|
640
|
-
*/
|
|
641
|
-
new(): any[];
|
|
642
|
-
|
|
643
|
-
/**
|
|
644
|
-
* 创建一个新的泛型数组实例
|
|
645
|
-
*/
|
|
646
|
-
new<T>(): T[];
|
|
647
|
-
|
|
648
|
-
/**
|
|
649
|
-
* 通过元素创建一个新的数组实例
|
|
650
|
-
* @param items 数组元素
|
|
651
|
-
*/
|
|
652
|
-
new<T>(...items: T[]): T[];
|
|
653
|
-
|
|
654
|
-
/**
|
|
655
|
-
* 通过长度创建一个新的数组实例
|
|
656
|
-
* @param length 数组长度
|
|
657
|
-
*/
|
|
658
|
-
new<T>(length: number): T[];
|
|
659
|
-
|
|
660
|
-
/**
|
|
661
|
-
* 创建一个范围数组
|
|
662
|
-
* @param end 结束值
|
|
663
|
-
* @param callback 回调函数
|
|
664
|
-
* @param input 是否将索引作为输入
|
|
665
|
-
* @returns 范围数组
|
|
666
|
-
*/
|
|
667
|
-
range<T>(end: number, callback?: ((number: number, i: number, a: T[]) => T), input?: boolean): T[];
|
|
668
|
-
|
|
669
|
-
/**
|
|
670
|
-
* 创建一个范围数组
|
|
671
|
-
* @param start 开始值
|
|
672
|
-
* @param end 结束值
|
|
673
|
-
* @param callback 回调函数
|
|
674
|
-
* @param input 是否将索引作为输入
|
|
675
|
-
* @returns 范围数组
|
|
676
|
-
*/
|
|
677
|
-
range<T>(start: number, end: number, callback?: ((number: number, i: number, a: T[]) => T), input?: boolean): T[];
|
|
678
|
-
|
|
679
|
-
/**
|
|
680
|
-
* 创建一个范围数组
|
|
681
|
-
* @param start 开始值
|
|
682
|
-
* @param end 结束值
|
|
683
|
-
* @param step 步长
|
|
684
|
-
* @param callback 回调函数
|
|
685
|
-
* @param input 是否将索引作为输入
|
|
686
|
-
* @returns 范围数组
|
|
687
|
-
*/
|
|
688
|
-
range<T>(start: number, end: number, step: number, callback?: ((number: number, i: number, a: T[]) => T), input?: boolean): T[];
|
|
689
|
-
}
|
|
690
|
-
|
|
691
|
-
/**
|
|
692
|
-
* Array 实例扩展
|
|
693
|
-
*/
|
|
694
|
-
interface Array<T> {
|
|
695
|
-
/**
|
|
696
|
-
* 获取数组长度
|
|
697
|
-
* @returns 数组长度
|
|
698
|
-
*/
|
|
699
|
-
$length(): number;
|
|
700
|
-
|
|
701
|
-
/**
|
|
702
|
-
* 获取数组的键值对迭代器
|
|
703
|
-
* @returns 键值对迭代器
|
|
704
|
-
*/
|
|
705
|
-
$entries(): [number, T][];
|
|
706
|
-
|
|
707
|
-
/**
|
|
708
|
-
* 获取数组的键迭代器
|
|
709
|
-
* @returns 键迭代器
|
|
710
|
-
*/
|
|
711
|
-
$keys(): number[];
|
|
712
|
-
|
|
713
|
-
/**
|
|
714
|
-
* 获取数组的值迭代器
|
|
715
|
-
* @returns 值迭代器
|
|
716
|
-
*/
|
|
717
|
-
$values(): T[];
|
|
718
|
-
|
|
719
|
-
/**
|
|
720
|
-
* 映射数组元素
|
|
721
|
-
* @param callback 映射函数
|
|
722
|
-
* @returns 映射后的新数组
|
|
723
|
-
*/
|
|
724
|
-
$map<U>(callback: (v: T, i: number, array: T[]) => U): U[];
|
|
725
|
-
|
|
726
|
-
/**
|
|
727
|
-
* 向数组末尾添加元素, 并返回当前数组
|
|
728
|
-
* @param items 要添加的元素
|
|
729
|
-
* @returns 添加后的数组
|
|
730
|
-
*/
|
|
731
|
-
$push(...items: T[]): T[];
|
|
732
|
-
|
|
733
|
-
/**
|
|
734
|
-
* 从数组末尾移除元素, 并返回当前数组
|
|
735
|
-
* @returns 移除元素后的数组
|
|
736
|
-
*/
|
|
737
|
-
$pop(): T[];
|
|
738
|
-
|
|
739
|
-
/**
|
|
740
|
-
* 从数组开头移除元素, 并返回当前数组
|
|
741
|
-
* @returns 移除元素后的数组
|
|
742
|
-
*/
|
|
743
|
-
$shift(): T[];
|
|
744
|
-
|
|
745
|
-
/**
|
|
746
|
-
* 向数组开头添加元素, 并返回当前数组
|
|
747
|
-
* @param items 要添加的元素
|
|
748
|
-
* @returns 添加后的数组
|
|
749
|
-
*/
|
|
750
|
-
$unshift(...items: T[]): T[];
|
|
751
|
-
|
|
752
|
-
/**
|
|
753
|
-
* 从数组中删除元素并添加新元素, 并返回当前数组
|
|
754
|
-
* @param start 开始位置
|
|
755
|
-
* @param deleteCount 删除数量
|
|
756
|
-
* @param items 要添加的元素
|
|
757
|
-
* @returns 被删除的元素数组
|
|
758
|
-
*/
|
|
759
|
-
$splice(start: number, deleteCount?: number, ...items: T[]): T[];
|
|
760
|
-
|
|
761
|
-
/**
|
|
762
|
-
* 向数组末尾添加元素(返回添加的元素)
|
|
763
|
-
* @param items 要添加的元素
|
|
764
|
-
* @returns 添加后的数组
|
|
765
|
-
*/
|
|
766
|
-
$pusha(...items: T[]): T[];
|
|
767
|
-
|
|
768
|
-
/**
|
|
769
|
-
* 向数组开头添加元素(返回添加的元素)
|
|
770
|
-
* @param items 要添加的元素
|
|
771
|
-
* @returns 添加后的数组
|
|
772
|
-
*/
|
|
773
|
-
$unshifta(...items: T[]): T[];
|
|
774
|
-
|
|
775
|
-
/**
|
|
776
|
-
* 向数组末尾添加元素(返回第一个添加的元素)
|
|
777
|
-
* @param items 要添加的元素
|
|
778
|
-
* @returns 第一个添加的元素
|
|
779
|
-
*/
|
|
780
|
-
$push0(...items: T[]): T;
|
|
781
|
-
|
|
782
|
-
/**
|
|
783
|
-
* 向数组开头添加元素(返回第一个添加的元素)
|
|
784
|
-
* @param items 要添加的元素
|
|
785
|
-
* @returns 第一个添加的元素
|
|
786
|
-
*/
|
|
787
|
-
$unshift0(...items: T[]): T;
|
|
788
|
-
|
|
789
|
-
/**
|
|
790
|
-
* 检查数组是否为空
|
|
791
|
-
* @returns 如果数组为空返回 true,否则返回 false
|
|
792
|
-
*/
|
|
793
|
-
$empty(): boolean;
|
|
794
|
-
|
|
795
|
-
/**
|
|
796
|
-
* 获取数组的第一个元素
|
|
797
|
-
* @param defval 默认值
|
|
798
|
-
* @returns 第一个元素或默认值
|
|
799
|
-
*/
|
|
800
|
-
first(defval?: T): T;
|
|
801
|
-
|
|
802
|
-
/**
|
|
803
|
-
* 获取数组的最后一个元素
|
|
804
|
-
* @param defval 默认值
|
|
805
|
-
* @returns 最后一个元素或默认值
|
|
806
|
-
*/
|
|
807
|
-
last(defval?: T): T;
|
|
808
|
-
|
|
809
|
-
/**
|
|
810
|
-
* 查找数组中的元素
|
|
811
|
-
* @param cb 查找回调函数
|
|
812
|
-
* @param defval 默认值
|
|
813
|
-
* @returns 找到的元素或默认值
|
|
814
|
-
*/
|
|
815
|
-
$find(cb: (value: T, index: number, array: T[]) => boolean, defval?: T): T;
|
|
816
|
-
|
|
817
|
-
/**
|
|
818
|
-
* 比较两个数组是否相等
|
|
819
|
-
* @param a 要比较的数组
|
|
820
|
-
* @returns 如果相等返回 true,否则返回 false
|
|
821
|
-
*/
|
|
822
|
-
equals(a: T[]): boolean;
|
|
823
|
-
|
|
824
|
-
/**
|
|
825
|
-
* 去重数组元素
|
|
826
|
-
* @param cb 比较函数
|
|
827
|
-
* @returns 去重后的新数组
|
|
828
|
-
*/
|
|
829
|
-
unique(cb?: (value: T) => any): T[];
|
|
830
|
-
|
|
831
|
-
/**
|
|
832
|
-
* 遍历数组元素
|
|
833
|
-
* @param cb 遍历回调函数
|
|
834
|
-
* @returns 原数组
|
|
835
|
-
*/
|
|
836
|
-
each(cb: (value: T, index: number, array: T[]) => void): T[];
|
|
837
|
-
|
|
838
|
-
/**
|
|
839
|
-
* 异步遍历数组元素
|
|
840
|
-
* @param cb 异步遍历回调函数
|
|
841
|
-
* @returns Promise,解析为原数组
|
|
842
|
-
*/
|
|
843
|
-
each$async(cb: (value: T, index: number, array: T[]) => Promise<void>): Promise<T[]>;
|
|
844
|
-
|
|
845
|
-
/**
|
|
846
|
-
* 异步映射数组元素
|
|
847
|
-
* @param cb 异步映射函数
|
|
848
|
-
* @returns Promise,解析为映射后的新数组
|
|
849
|
-
*/
|
|
850
|
-
map$async<U>(cb: (value: T, index: number, array: T[]) => Promise<U>): Promise<U[]>;
|
|
851
|
-
|
|
852
|
-
/**
|
|
853
|
-
* 打乱数组元素
|
|
854
|
-
* @param clone 是否克隆数组
|
|
855
|
-
* @returns 打乱后的数组
|
|
856
|
-
*/
|
|
857
|
-
shuffle(clone?: boolean): T[];
|
|
858
|
-
|
|
859
|
-
/**
|
|
860
|
-
* 计算两个数组的并集
|
|
861
|
-
* @param a 另一个数组
|
|
862
|
-
* @returns 并集数组
|
|
863
|
-
*/
|
|
864
|
-
union(a: T[]): T[];
|
|
865
|
-
|
|
866
|
-
/**
|
|
867
|
-
* 计算两个数组的交集
|
|
868
|
-
* @param a 另一个数组
|
|
869
|
-
* @returns 交集数组
|
|
870
|
-
*/
|
|
871
|
-
intersection(a: T[]): T[];
|
|
872
|
-
|
|
873
|
-
/**
|
|
874
|
-
* 计算两个数组的差集
|
|
875
|
-
* @param a 另一个数组
|
|
876
|
-
* @returns 差集数组
|
|
877
|
-
*/
|
|
878
|
-
difference(a: T[]): T[];
|
|
879
|
-
|
|
880
|
-
/**
|
|
881
|
-
* 计算两个数组的对称差集
|
|
882
|
-
* @param a 另一个数组
|
|
883
|
-
* @returns 对称差集数组
|
|
884
|
-
*/
|
|
885
|
-
symmetricDifference(a: T[]): T[];
|
|
886
|
-
|
|
887
|
-
/**
|
|
888
|
-
* 转换为 Map
|
|
889
|
-
* @param cb 转换函数
|
|
890
|
-
* @returns 转换后的 Map
|
|
891
|
-
*/
|
|
892
|
-
toMap(cb?: (value: T, index: number) => [any, any]): Map<any, any>;
|
|
893
|
-
|
|
894
|
-
/**
|
|
895
|
-
* 转换为 Set
|
|
896
|
-
* @param cb 转换函数
|
|
897
|
-
* @returns 转换后的 Set
|
|
898
|
-
*/
|
|
899
|
-
toSet(cb?: (value: T) => any): Set<any>;
|
|
900
|
-
|
|
901
|
-
/**
|
|
902
|
-
* 转换为 Uint8Array
|
|
903
|
-
* @returns 转换后的 Uint8Array
|
|
904
|
-
*/
|
|
905
|
-
toUint8Array(): Uint8Array;
|
|
906
|
-
|
|
907
|
-
/**
|
|
908
|
-
* 转换为 Base64 字符串
|
|
909
|
-
* @returns Base64 字符串
|
|
910
|
-
*/
|
|
911
|
-
toBase64(): string;
|
|
912
|
-
|
|
913
|
-
/**
|
|
914
|
-
* 转换为十六进制字符串
|
|
915
|
-
* @returns 十六进制字符串
|
|
916
|
-
*/
|
|
917
|
-
toHex(): string;
|
|
918
|
-
|
|
919
|
-
/**
|
|
920
|
-
* 解码字符串
|
|
921
|
-
* @returns 解码后的字符串
|
|
922
|
-
*/
|
|
923
|
-
decode(): string;
|
|
924
|
-
|
|
925
|
-
assoc(id: keyof T & string, prop: keyof T & string, assoc?: Record<string, any> | ((ids: T[]) => Record<string, any>)): this;
|
|
926
|
-
toTree(o?: { id?: string; pid?: string; level?: string; root?: string; parent?: string; children?: string; empty?: any; hasRoot?: boolean }): any;
|
|
927
|
-
$tree2tree(o?: { id?: string; pid?: string; level?: string; root?: string; parent?: string; children?: string; empty?: any }, r?: any, p?: any): any;
|
|
928
|
-
$tree$find(cb: (value: any) => boolean, self?: boolean, depth?: number, children?: string): any | null;
|
|
929
|
-
$tree$each(cb: (value: any) => void, self?: boolean, depth?: number, children?: string): this;
|
|
930
|
-
$tree$map<U>(cb: (value: any) => U, self?: boolean, depth?: number, children?: string, empty?: any): U[];
|
|
931
|
-
}
|
|
932
|
-
|
|
933
|
-
/**
|
|
934
|
-
* Map 构造函数扩展
|
|
935
|
-
*/
|
|
936
|
-
interface MapConstructor {
|
|
937
|
-
/**
|
|
938
|
-
* 创建一个新的 Map 实例
|
|
939
|
-
*/
|
|
940
|
-
new<K, V>(): Map<K, V>;
|
|
941
|
-
|
|
942
|
-
/**
|
|
943
|
-
* 通过迭代器创建一个新的 Map 实例
|
|
944
|
-
* @param iterator 迭代器
|
|
945
|
-
*/
|
|
946
|
-
new<K, V>(iterator: Iterator<K, V, V>): Map<K, V>;
|
|
947
|
-
}
|
|
948
|
-
|
|
949
|
-
/**
|
|
950
|
-
* Map 实例扩展
|
|
951
|
-
*/
|
|
952
|
-
interface Map<K, V> {
|
|
953
|
-
/**
|
|
954
|
-
* 获取 Map 的大小
|
|
955
|
-
* @returns Map 的大小
|
|
956
|
-
*/
|
|
957
|
-
$length(): number;
|
|
958
|
-
|
|
959
|
-
/**
|
|
960
|
-
* 获取 Map 的键值对迭代器
|
|
961
|
-
* @returns 键值对迭代器
|
|
962
|
-
*/
|
|
963
|
-
$entries(): IterableIterator<[K, V]>;
|
|
964
|
-
|
|
965
|
-
/**
|
|
966
|
-
* 获取 Map 的键迭代器
|
|
967
|
-
* @returns 键迭代器
|
|
968
|
-
*/
|
|
969
|
-
$keys(): IterableIterator<K>;
|
|
970
|
-
|
|
971
|
-
/**
|
|
972
|
-
* 获取 Map 的值迭代器
|
|
973
|
-
* @returns 值迭代器
|
|
974
|
-
*/
|
|
975
|
-
$values(): IterableIterator<V>;
|
|
976
|
-
|
|
977
|
-
/**
|
|
978
|
-
* 设置键值对, 并返回当前Map
|
|
979
|
-
* @param key 键
|
|
980
|
-
* @param value 值
|
|
981
|
-
* @returns Map 实例
|
|
982
|
-
*/
|
|
983
|
-
$set(key: K, value: V): Map<K, V>;
|
|
984
|
-
|
|
985
|
-
/**
|
|
986
|
-
* 删除键值对, 并返回当前Map
|
|
987
|
-
* @param key 键
|
|
988
|
-
* @returns Map 实例
|
|
989
|
-
*/
|
|
990
|
-
$delete(key: K): Map<K, V>;
|
|
991
|
-
|
|
992
|
-
/**
|
|
993
|
-
* 设置键值对并返回键值对数组
|
|
994
|
-
* @param key 键
|
|
995
|
-
* @param value 值
|
|
996
|
-
* @returns 键值对数组
|
|
997
|
-
*/
|
|
998
|
-
$seta(key: K, value: V): [K, V];
|
|
999
|
-
|
|
1000
|
-
/**
|
|
1001
|
-
* 删除键值对并返回键数组
|
|
1002
|
-
* @param key 键
|
|
1003
|
-
* @returns 键数组
|
|
1004
|
-
*/
|
|
1005
|
-
$deletea(key: K): [K];
|
|
1006
|
-
|
|
1007
|
-
/**
|
|
1008
|
-
* 设置键值对并返回键
|
|
1009
|
-
* @param key 键
|
|
1010
|
-
* @param value 值
|
|
1011
|
-
* @returns 键
|
|
1012
|
-
*/
|
|
1013
|
-
$set0(key: K, value: V): K;
|
|
1014
|
-
|
|
1015
|
-
/**
|
|
1016
|
-
* 删除键值对并返回键
|
|
1017
|
-
* @param key 键
|
|
1018
|
-
* @returns 键
|
|
1019
|
-
*/
|
|
1020
|
-
$delete0(key: K): K;
|
|
1021
|
-
|
|
1022
|
-
/**
|
|
1023
|
-
* 设置键值对并返回值
|
|
1024
|
-
* @param key 键
|
|
1025
|
-
* @param value 值
|
|
1026
|
-
* @returns 值
|
|
1027
|
-
*/
|
|
1028
|
-
$set1(key: K, value: V): V;
|
|
1029
|
-
|
|
1030
|
-
/**
|
|
1031
|
-
* 删除键值对并返回值
|
|
1032
|
-
* @param key 键
|
|
1033
|
-
* @returns 值
|
|
1034
|
-
*/
|
|
1035
|
-
$delete1(key: K): V;
|
|
1036
|
-
|
|
1037
|
-
/**
|
|
1038
|
-
* 获取值,如果不存在则插入默认值
|
|
1039
|
-
* @param key 键
|
|
1040
|
-
* @param defval 默认值
|
|
1041
|
-
* @returns 值
|
|
1042
|
-
*/
|
|
1043
|
-
$getOrInsert(key: K, defval?: V): V;
|
|
1044
|
-
|
|
1045
|
-
/**
|
|
1046
|
-
* 获取值,如果不存在则计算并插入
|
|
1047
|
-
* @param key 键
|
|
1048
|
-
* @param callback 计算函数
|
|
1049
|
-
* @returns 值
|
|
1050
|
-
*/
|
|
1051
|
-
$getOrInsertComputed(key: K, callback: (key: K) => V): V;
|
|
1052
|
-
|
|
1053
|
-
/**
|
|
1054
|
-
* 获取值,如果不存在则返回默认值
|
|
1055
|
-
* @param key 键
|
|
1056
|
-
* @param defval 默认值或计算函数
|
|
1057
|
-
* @returns 值
|
|
1058
|
-
*/
|
|
1059
|
-
$get(key: K, defval?: V | ((key: K) => V)): V;
|
|
1060
|
-
|
|
1061
|
-
/**
|
|
1062
|
-
* 异步获取值,如果不存在则返回默认值
|
|
1063
|
-
* @param key 键
|
|
1064
|
-
* @param defval 默认值或异步计算函数
|
|
1065
|
-
* @returns Promise,解析为值
|
|
1066
|
-
*/
|
|
1067
|
-
$get$async(key: K, defval?: V | ((key: K) => Promise<V>)): Promise<V>;
|
|
1068
|
-
|
|
1069
|
-
/**
|
|
1070
|
-
* 转换为对象
|
|
1071
|
-
* @returns 转换后的对象
|
|
1072
|
-
*/
|
|
1073
|
-
toObject(): Record<string, V>;
|
|
1074
|
-
|
|
1075
|
-
/**
|
|
1076
|
-
* 转换为数组
|
|
1077
|
-
* @returns 转换后的数组
|
|
1078
|
-
*/
|
|
1079
|
-
toArray(): [K, V][];
|
|
1080
|
-
|
|
1081
|
-
/**
|
|
1082
|
-
* 转换为 JSON 格式
|
|
1083
|
-
* @returns 转换后的数组
|
|
1084
|
-
*/
|
|
1085
|
-
toJSON(): [K, V][];
|
|
1086
|
-
|
|
1087
|
-
/**
|
|
1088
|
-
* 获取值,如果不存在则插入默认值
|
|
1089
|
-
* @param key 键
|
|
1090
|
-
* @param defval 默认值
|
|
1091
|
-
* @returns 值
|
|
1092
|
-
*/
|
|
1093
|
-
getOrInsert(key: K, defval?: V): V;
|
|
1094
|
-
|
|
1095
|
-
/**
|
|
1096
|
-
* 获取值,如果不存在则计算并插入
|
|
1097
|
-
* @param key 键
|
|
1098
|
-
* @param callback 计算函数
|
|
1099
|
-
* @returns 值
|
|
1100
|
-
*/
|
|
1101
|
-
getOrInsertComputed(key: K, callback: (key: K) => V): V;
|
|
1102
|
-
}
|
|
1103
|
-
|
|
1104
|
-
/**
|
|
1105
|
-
* Set 构造函数扩展
|
|
1106
|
-
*/
|
|
1107
|
-
interface SetConstructor {
|
|
1108
|
-
/**
|
|
1109
|
-
* 创建一个新的 Set 实例
|
|
1110
|
-
*/
|
|
1111
|
-
new<T>(): Set<T>;
|
|
1112
|
-
|
|
1113
|
-
/**
|
|
1114
|
-
* 通过迭代器创建一个新的 Set 实例
|
|
1115
|
-
* @param iterator 迭代器
|
|
1116
|
-
*/
|
|
1117
|
-
new<T>(iterator: Iterator<T, T, T>): Set<T>;
|
|
1118
|
-
}
|
|
1119
|
-
|
|
1120
|
-
/**
|
|
1121
|
-
* Set 实例扩展
|
|
1122
|
-
*/
|
|
1123
|
-
interface Set<T> {
|
|
1124
|
-
/**
|
|
1125
|
-
* 获取 Set 的大小
|
|
1126
|
-
* @returns Set 的大小
|
|
1127
|
-
*/
|
|
1128
|
-
$length(): number;
|
|
1129
|
-
|
|
1130
|
-
/**
|
|
1131
|
-
* 获取 Set 的键值对迭代器
|
|
1132
|
-
* @returns 键值对迭代器
|
|
1133
|
-
*/
|
|
1134
|
-
$entries(): IterableIterator<[T, T]>;
|
|
1135
|
-
|
|
1136
|
-
/**
|
|
1137
|
-
* 获取 Set 的键迭代器
|
|
1138
|
-
* @returns 键迭代器
|
|
1139
|
-
*/
|
|
1140
|
-
$keys(): IterableIterator<T>;
|
|
1141
|
-
|
|
1142
|
-
/**
|
|
1143
|
-
* 获取 Set 的值迭代器
|
|
1144
|
-
* @returns 值迭代器
|
|
1145
|
-
*/
|
|
1146
|
-
$values(): IterableIterator<T>;
|
|
1147
|
-
|
|
1148
|
-
/**
|
|
1149
|
-
* 添加元素, 并返回当前Map
|
|
1150
|
-
* @param value 值
|
|
1151
|
-
* @returns Set 实例
|
|
1152
|
-
*/
|
|
1153
|
-
$add(value: T): Set<T>;
|
|
1154
|
-
|
|
1155
|
-
/**
|
|
1156
|
-
* 删除元素, 并返回当前Map
|
|
1157
|
-
* @param value 值
|
|
1158
|
-
* @returns Set 实例
|
|
1159
|
-
*/
|
|
1160
|
-
$delete(value: T): Set<T>;
|
|
1161
|
-
|
|
1162
|
-
/**
|
|
1163
|
-
* 添加元素并返回元素数组
|
|
1164
|
-
* @param value 值
|
|
1165
|
-
* @returns 元素数组
|
|
1166
|
-
*/
|
|
1167
|
-
$adda(value: T): [T];
|
|
1168
|
-
|
|
1169
|
-
/**
|
|
1170
|
-
* 删除元素并返回元素数组
|
|
1171
|
-
* @param value 值
|
|
1172
|
-
* @returns 元素数组
|
|
1173
|
-
*/
|
|
1174
|
-
$deletea(value: T): [T];
|
|
1175
|
-
|
|
1176
|
-
/**
|
|
1177
|
-
* 添加元素并返回元素
|
|
1178
|
-
* @param value 值
|
|
1179
|
-
* @returns 元素
|
|
1180
|
-
*/
|
|
1181
|
-
$add0(value: T): T;
|
|
1182
|
-
|
|
1183
|
-
/**
|
|
1184
|
-
* 删除元素并返回元素
|
|
1185
|
-
* @param value 值
|
|
1186
|
-
* @returns 元素
|
|
1187
|
-
*/
|
|
1188
|
-
$delete0(value: T): T;
|
|
1189
|
-
|
|
1190
|
-
/**
|
|
1191
|
-
* 计算两个 Set 的并集
|
|
1192
|
-
* @param s 另一个 Set
|
|
1193
|
-
* @returns 并集 Set
|
|
1194
|
-
*/
|
|
1195
|
-
$union(s: Set<T>): Set<T>;
|
|
1196
|
-
|
|
1197
|
-
/**
|
|
1198
|
-
* 计算两个 Set 的交集
|
|
1199
|
-
* @param s 另一个 Set
|
|
1200
|
-
* @returns 交集 Set
|
|
1201
|
-
*/
|
|
1202
|
-
$intersection(s: Set<T>): Set<T>;
|
|
1203
|
-
|
|
1204
|
-
/**
|
|
1205
|
-
* 计算两个 Set 的差集
|
|
1206
|
-
* @param s 另一个 Set
|
|
1207
|
-
* @returns 差集 Set
|
|
1208
|
-
*/
|
|
1209
|
-
$difference(s: Set<T>): Set<T>;
|
|
1210
|
-
|
|
1211
|
-
/**
|
|
1212
|
-
* 计算两个 Set 的对称差集
|
|
1213
|
-
* @param s 另一个 Set
|
|
1214
|
-
* @returns 对称差集 Set
|
|
1215
|
-
*/
|
|
1216
|
-
$symmetricDifference(s: Set<T>): Set<T>;
|
|
1217
|
-
|
|
1218
|
-
/**
|
|
1219
|
-
* 转换为数组
|
|
1220
|
-
* @returns 转换后的数组
|
|
1221
|
-
*/
|
|
1222
|
-
toArray(): T[];
|
|
1223
|
-
|
|
1224
|
-
/**
|
|
1225
|
-
* 转换为 JSON 格式
|
|
1226
|
-
* @returns 转换后的数组
|
|
1227
|
-
*/
|
|
1228
|
-
toJSON(): T[];
|
|
1229
|
-
}
|
|
1230
|
-
|
|
1231
|
-
/**
|
|
1232
|
-
* Date 构造函数扩展
|
|
1233
|
-
*/
|
|
1234
|
-
interface DateConstructor {
|
|
1235
|
-
/**
|
|
1236
|
-
* 创建一个新的 Date 实例
|
|
1237
|
-
* @param args 构造参数
|
|
1238
|
-
*/
|
|
1239
|
-
new(...args: any[]): Date;
|
|
1240
|
-
|
|
1241
|
-
/**
|
|
1242
|
-
* 格式化当前日期
|
|
1243
|
-
* @param format 格式字符串
|
|
1244
|
-
* @returns 格式化后的字符串
|
|
1245
|
-
*/
|
|
1246
|
-
format(format?: string): string;
|
|
1247
|
-
|
|
1248
|
-
/**
|
|
1249
|
-
* 获取当前时间戳
|
|
1250
|
-
* @returns 时间戳
|
|
1251
|
-
*/
|
|
1252
|
-
unix(): number;
|
|
1253
|
-
|
|
1254
|
-
/**
|
|
1255
|
-
* 从时间戳创建 Date 实例
|
|
1256
|
-
* @param time 时间戳
|
|
1257
|
-
* @returns Date 实例
|
|
1258
|
-
*/
|
|
1259
|
-
fromUnix(time: number): Date;
|
|
1260
|
-
|
|
1261
|
-
/**
|
|
1262
|
-
* 日期计算
|
|
1263
|
-
* @param opts 计算选项
|
|
1264
|
-
* @returns 计算后的 Date 实例
|
|
1265
|
-
*/
|
|
1266
|
-
expr(opts: { y?: number; m?: number; d?: number; h?: number; i?: number; s?: number }): Date;
|
|
1267
|
-
|
|
1268
|
-
/**
|
|
1269
|
-
* 获取当天的时间范围
|
|
1270
|
-
* @returns 时间范围数组 [开始时间戳, 结束时间戳]
|
|
1271
|
-
*/
|
|
1272
|
-
toDayRange(): [number, number];
|
|
1273
|
-
|
|
1274
|
-
/**
|
|
1275
|
-
* 获取当周的时间范围
|
|
1276
|
-
* @returns 时间范围数组 [开始时间戳, 结束时间戳]
|
|
1277
|
-
*/
|
|
1278
|
-
toWeekRange(): [number, number];
|
|
1279
|
-
|
|
1280
|
-
/**
|
|
1281
|
-
* 获取当月的时间范围
|
|
1282
|
-
* @returns 时间范围数组 [开始时间戳, 结束时间戳]
|
|
1283
|
-
*/
|
|
1284
|
-
toMonthRange(): [number, number];
|
|
1285
|
-
|
|
1286
|
-
/**
|
|
1287
|
-
* 获取当年的时间范围
|
|
1288
|
-
* @returns 时间范围数组 [开始时间戳, 结束时间戳]
|
|
1289
|
-
*/
|
|
1290
|
-
toYearRange(): [number, number];
|
|
1291
|
-
}
|
|
1292
|
-
|
|
1293
|
-
/**
|
|
1294
|
-
* Date 实例扩展
|
|
1295
|
-
*/
|
|
1296
|
-
interface Date {
|
|
1297
|
-
/**
|
|
1298
|
-
* 格式化日期
|
|
1299
|
-
* @param format 格式字符串
|
|
1300
|
-
* @returns 格式化后的字符串
|
|
1301
|
-
*/
|
|
1302
|
-
format(format?: string): string;
|
|
1303
|
-
|
|
1304
|
-
/**
|
|
1305
|
-
* 获取时间戳
|
|
1306
|
-
* @returns 时间戳
|
|
1307
|
-
*/
|
|
1308
|
-
unix(): number;
|
|
1309
|
-
|
|
1310
|
-
/**
|
|
1311
|
-
* 检查是否是闰年
|
|
1312
|
-
* @returns 如果是闰年返回 true,否则返回 false
|
|
1313
|
-
*/
|
|
1314
|
-
isLeapYear(): boolean;
|
|
1315
|
-
|
|
1316
|
-
/**
|
|
1317
|
-
* 获取月份中的天数
|
|
1318
|
-
* @returns 月份中的天数
|
|
1319
|
-
*/
|
|
1320
|
-
getMonthDay(): number;
|
|
1321
|
-
|
|
1322
|
-
/**
|
|
1323
|
-
* 日期计算
|
|
1324
|
-
* @param opts 计算选项
|
|
1325
|
-
* @returns 计算后的 Date 实例
|
|
1326
|
-
*/
|
|
1327
|
-
expr(opts?: { y?: number; m?: number; d?: number; h?: number; i?: number; s?: number }): Date;
|
|
1328
|
-
|
|
1329
|
-
/**
|
|
1330
|
-
* 获取开始时间
|
|
1331
|
-
* @param n 时间单位
|
|
1332
|
-
* @returns 开始时间的 Date 实例
|
|
1333
|
-
*/
|
|
1334
|
-
begin(n?: number): Date;
|
|
1335
|
-
|
|
1336
|
-
/**
|
|
1337
|
-
* 获取结束时间
|
|
1338
|
-
* @param n 时间单位
|
|
1339
|
-
* @returns 结束时间的 Date 实例
|
|
1340
|
-
*/
|
|
1341
|
-
end(n?: number): Date;
|
|
1342
|
-
|
|
1343
|
-
/**
|
|
1344
|
-
* 获取指定周的日期
|
|
1345
|
-
* @param n 周数
|
|
1346
|
-
* @param dir 方向
|
|
1347
|
-
* @returns 计算后的 Date 实例
|
|
1348
|
-
*/
|
|
1349
|
-
week(n?: number, dir?: number): Date;
|
|
1350
|
-
|
|
1351
|
-
/**
|
|
1352
|
-
* 转换为 JSON 格式
|
|
1353
|
-
* @returns 转换后的字符串
|
|
1354
|
-
*/
|
|
1355
|
-
toJSON(): string;
|
|
1356
|
-
}
|
|
1357
|
-
|
|
1358
|
-
/**
|
|
1359
|
-
* RegExp 实例扩展
|
|
1360
|
-
*/
|
|
1361
|
-
interface RegExp {
|
|
1362
|
-
/**
|
|
1363
|
-
* 转换为 JSON 格式
|
|
1364
|
-
* @returns 转换后的字符串
|
|
1365
|
-
*/
|
|
1366
|
-
toJSON(): string;
|
|
1367
|
-
}
|
|
1368
|
-
|
|
1369
|
-
/**
|
|
1370
|
-
* Promise 构造函数扩展
|
|
1371
|
-
*/
|
|
1372
|
-
interface PromiseConstructor {
|
|
1373
|
-
/**
|
|
1374
|
-
* 创建一个通道,包含 Promise、resolve 和 reject 函数
|
|
1375
|
-
* @returns 通道数组 [Promise, resolve, reject]
|
|
1376
|
-
*/
|
|
1377
|
-
$channel(): [Promise<any>, (value: any) => void, (reason: any) => void];
|
|
1378
|
-
|
|
1379
|
-
/**
|
|
1380
|
-
* 创建一个带有解析器的 Promise
|
|
1381
|
-
* @returns 包含 promise、resolve 和 reject 的对象
|
|
1382
|
-
*/
|
|
1383
|
-
$withResolvers(): { promise: Promise<any>; resolve: (value: any) => void; reject: (reason: any) => void; };
|
|
1384
|
-
}
|
|
1385
|
-
|
|
1386
|
-
/**
|
|
1387
|
-
* Promise 实例扩展
|
|
1388
|
-
*/
|
|
1389
|
-
interface Promise<T> {
|
|
1390
|
-
/**
|
|
1391
|
-
* 尝试执行并捕获错误
|
|
1392
|
-
* @returns Promise,解析为 [结果, null] 或 [null, 错误]
|
|
1393
|
-
*/
|
|
1394
|
-
tryCatch(): Promise<[T, null] | [null, any]>;
|
|
1395
|
-
}
|
|
1396
|
-
|
|
1397
|
-
/**
|
|
1398
|
-
* JSON 扩展
|
|
1399
|
-
*/
|
|
1400
|
-
interface JSON {
|
|
1401
|
-
/**
|
|
1402
|
-
* 解析 JSON 字符串
|
|
1403
|
-
* @param v 要解析的值
|
|
1404
|
-
* @param defval 默认值
|
|
1405
|
-
* @returns 解析后的对象或默认值
|
|
1406
|
-
*/
|
|
1407
|
-
$parse(v: any, defval?: any): any;
|
|
1408
|
-
}
|
|
1409
|
-
|
|
1410
|
-
/**
|
|
1411
|
-
* Iterator 扩展
|
|
1412
|
-
*/
|
|
1413
|
-
interface Iterator<T> {
|
|
1414
|
-
/**
|
|
1415
|
-
* 转换为数组
|
|
1416
|
-
* @returns 转换后的数组
|
|
1417
|
-
*/
|
|
1418
|
-
toArray(): T[];
|
|
1419
|
-
}
|
|
1420
|
-
|
|
1421
|
-
/**
|
|
1422
|
-
* ArrayBuffer 扩展
|
|
1423
|
-
*/
|
|
1424
|
-
interface ArrayBuffer {
|
|
1425
|
-
/**
|
|
1426
|
-
* 转换为 Uint8Array
|
|
1427
|
-
* @returns 转换后的 Uint8Array
|
|
1428
|
-
*/
|
|
1429
|
-
toUint8Array(): Uint8Array;
|
|
1430
|
-
}
|
|
1431
|
-
|
|
1432
|
-
/**
|
|
1433
|
-
* Uint8Array 构造函数扩展
|
|
1434
|
-
*/
|
|
1435
|
-
interface Uint8ArrayConstructor {
|
|
1436
|
-
/**
|
|
1437
|
-
* 创建一个新的 Uint8Array 实例
|
|
1438
|
-
*/
|
|
1439
|
-
new(): Uint8Array;
|
|
1440
|
-
|
|
1441
|
-
/**
|
|
1442
|
-
* 通过长度创建一个新的 Uint8Array 实例
|
|
1443
|
-
* @param length 长度
|
|
1444
|
-
*/
|
|
1445
|
-
new(length: number): Uint8Array;
|
|
1446
|
-
|
|
1447
|
-
/**
|
|
1448
|
-
* 从字符串创建 Uint8Array
|
|
1449
|
-
* @param str 字符串
|
|
1450
|
-
* @returns 创建的 Uint8Array
|
|
1451
|
-
*/
|
|
1452
|
-
fromString(str: string): Uint8Array;
|
|
1453
|
-
|
|
1454
|
-
/**
|
|
1455
|
-
* 从十六进制字符串创建 Uint8Array
|
|
1456
|
-
* @param str 十六进制字符串
|
|
1457
|
-
* @returns 创建的 Uint8Array
|
|
1458
|
-
*/
|
|
1459
|
-
$fromHex(str: string): Uint8Array;
|
|
1460
|
-
|
|
1461
|
-
/**
|
|
1462
|
-
* 从 Base64 字符串创建 Uint8Array
|
|
1463
|
-
* @param str Base64 字符串
|
|
1464
|
-
* @returns 创建的 Uint8Array
|
|
1465
|
-
*/
|
|
1466
|
-
$fromBase64(str: string): Uint8Array;
|
|
1467
|
-
}
|
|
1468
|
-
|
|
1469
|
-
/**
|
|
1470
|
-
* Uint8Array 实例扩展
|
|
1471
|
-
*/
|
|
1472
|
-
interface Uint8Array {
|
|
1473
|
-
/**
|
|
1474
|
-
* 从字符串设置值
|
|
1475
|
-
* @param str 字符串
|
|
1476
|
-
* @param targetOffset 目标偏移量
|
|
1477
|
-
* @returns 设置后的对象
|
|
1478
|
-
*/
|
|
1479
|
-
setFromString(str: string, targetOffset?: number): Object;
|
|
1480
|
-
|
|
1481
|
-
/**
|
|
1482
|
-
* 从十六进制字符串设置值
|
|
1483
|
-
* @param str 十六进制字符串
|
|
1484
|
-
* @param targetOffset 目标偏移量
|
|
1485
|
-
* @returns 设置后的对象
|
|
1486
|
-
*/
|
|
1487
|
-
$setFromHex(str: string, targetOffset?: number): Object;
|
|
1488
|
-
|
|
1489
|
-
/**
|
|
1490
|
-
* 从 Base64 字符串设置值
|
|
1491
|
-
* @param str Base64 字符串
|
|
1492
|
-
* @param targetOffset 目标偏移量
|
|
1493
|
-
* @returns 设置后的对象
|
|
1494
|
-
*/
|
|
1495
|
-
$setFromBase64(str: string, targetOffset?: number): Object;
|
|
1496
|
-
|
|
1497
|
-
/**
|
|
1498
|
-
* 转换为字符串
|
|
1499
|
-
* @returns 转换后的字符串
|
|
1500
|
-
*/
|
|
1501
|
-
toString(): string;
|
|
1502
|
-
|
|
1503
|
-
/**
|
|
1504
|
-
* 转换为十六进制字符串
|
|
1505
|
-
* @returns 十六进制字符串
|
|
1506
|
-
*/
|
|
1507
|
-
$toHex(): string;
|
|
1508
|
-
|
|
1509
|
-
/**
|
|
1510
|
-
* 转换为 Base64 字符串
|
|
1511
|
-
* @returns Base64 字符串
|
|
1512
|
-
*/
|
|
1513
|
-
$toBase64(): string;
|
|
1514
|
-
|
|
1515
|
-
/**
|
|
1516
|
-
* 转换为数组
|
|
1517
|
-
* @returns 转换后的数组
|
|
1518
|
-
*/
|
|
1519
|
-
toArray(): number[];
|
|
1520
|
-
}
|
|
1521
|
-
|
|
1522
|
-
/**
|
|
1523
|
-
* Math 扩展
|
|
1524
|
-
*/
|
|
1525
|
-
interface Math {
|
|
1526
|
-
/**
|
|
1527
|
-
* 生成随机字符串
|
|
1528
|
-
* @param len 长度
|
|
1529
|
-
* @param slen 特殊字符长度
|
|
1530
|
-
* @param chars 字符集
|
|
1531
|
-
* @param schars 特殊字符集
|
|
1532
|
-
* @returns 随机字符串
|
|
1533
|
-
*/
|
|
1534
|
-
randstr(len?: number, slen?: number, chars?: string, schars?: string): string;
|
|
1535
|
-
|
|
1536
|
-
/**
|
|
1537
|
-
* 生成随机整数
|
|
1538
|
-
* @param min 最小值
|
|
1539
|
-
* @param max 最大值
|
|
1540
|
-
* @returns 随机整数
|
|
1541
|
-
*/
|
|
1542
|
-
randint(min?: number, max?: number): number;
|
|
1543
|
-
|
|
1544
|
-
/**
|
|
1545
|
-
* 生成递增 ID
|
|
1546
|
-
* @returns 递增 ID
|
|
1547
|
-
*/
|
|
1548
|
-
incrid(): number;
|
|
1549
|
-
|
|
1550
|
-
/**
|
|
1551
|
-
* 生成递增字符串
|
|
1552
|
-
* @returns 递增字符串
|
|
1553
|
-
*/
|
|
1554
|
-
incrstr(): string;
|
|
1555
|
-
|
|
1556
|
-
/**
|
|
1557
|
-
* 生成唯一 ID
|
|
1558
|
-
* @param now 时间戳
|
|
1559
|
-
* @returns 唯一 ID
|
|
1560
|
-
*/
|
|
1561
|
-
uniqid(now?: number): number;
|
|
1562
|
-
|
|
1563
|
-
/**
|
|
1564
|
-
* 生成唯一字符串
|
|
1565
|
-
* @returns 唯一字符串
|
|
1566
|
-
*/
|
|
1567
|
-
uniqstr(): string;
|
|
1568
|
-
|
|
1569
|
-
/**
|
|
1570
|
-
* 睡眠指定时间
|
|
1571
|
-
* @param duration 持续时间(毫秒)
|
|
1572
|
-
* @returns Promise
|
|
1573
|
-
*/
|
|
1574
|
-
sleep(duration: number): Promise<void>;
|
|
1575
|
-
|
|
1576
|
-
/**
|
|
1577
|
-
* 使用模板
|
|
1578
|
-
* @param name 模板名称
|
|
1579
|
-
* @returns 模板内容
|
|
1580
|
-
*/
|
|
1581
|
-
useTemplate(name: string): any;
|
|
1582
|
-
}
|
|
1583
|
-
|
|
1584
|
-
/**
|
|
1585
|
-
* LRU 缓存类
|
|
1586
|
-
*/
|
|
1587
|
-
class LRU<K, V> extends Map<K, V> {
|
|
1588
|
-
/**
|
|
1589
|
-
* 构造函数
|
|
1590
|
-
* @param capacity 容量
|
|
1591
|
-
*/
|
|
1592
|
-
constructor(capacity: number);
|
|
1593
|
-
|
|
1594
|
-
/**
|
|
1595
|
-
* 获取值
|
|
1596
|
-
* @param key 键
|
|
1597
|
-
* @returns 值或 undefined
|
|
1598
|
-
*/
|
|
1599
|
-
get(key: K): V | undefined;
|
|
1600
|
-
|
|
1601
|
-
/**
|
|
1602
|
-
* 获取值,如果不存在则插入默认值
|
|
1603
|
-
* @param key 键
|
|
1604
|
-
* @param defval 默认值
|
|
1605
|
-
* @returns 值
|
|
1606
|
-
*/
|
|
1607
|
-
getOrInsert(key: K, defval: V): V;
|
|
1608
|
-
|
|
1609
|
-
/**
|
|
1610
|
-
* 获取值,如果不存在则计算并插入
|
|
1611
|
-
* @param key 键
|
|
1612
|
-
* @param callback 计算函数
|
|
1613
|
-
* @returns 值
|
|
1614
|
-
*/
|
|
1615
|
-
getOrInsertComputed(key: K, callback: (key: K) => V): V;
|
|
1616
|
-
|
|
1617
|
-
/**
|
|
1618
|
-
* 异步获取值,如果不存在则计算并插入
|
|
1619
|
-
* @param key 键
|
|
1620
|
-
* @param callback 异步计算函数
|
|
1621
|
-
* @returns Promise,解析为值
|
|
1622
|
-
*/
|
|
1623
|
-
getOrInsertComputedAsync(key: K, callback: (key: K) => Promise<V>): Promise<V>;
|
|
1624
|
-
|
|
1625
|
-
/**
|
|
1626
|
-
* 设置键值对
|
|
1627
|
-
* @param key 键
|
|
1628
|
-
* @param value 值
|
|
1629
|
-
* @returns LRU 实例
|
|
1630
|
-
*/
|
|
1631
|
-
set(key: K, value: V): this;
|
|
1632
|
-
|
|
1633
|
-
/**
|
|
1634
|
-
* 设置键值对(别名)
|
|
1635
|
-
* @param key 键
|
|
1636
|
-
* @param value 值
|
|
1637
|
-
* @returns LRU 实例
|
|
1638
|
-
*/
|
|
1639
|
-
put(key: K, value: V): this;
|
|
1640
|
-
}
|
|
1641
|
-
|
|
1642
|
-
/**
|
|
1643
|
-
* LRU 构造函数接口
|
|
1644
|
-
*/
|
|
1645
|
-
interface LRUConstructor {
|
|
1646
|
-
/**
|
|
1647
|
-
* 创建一个新的 LRU 实例
|
|
1648
|
-
* @param capacity 容量
|
|
1649
|
-
*/
|
|
1650
|
-
new <K, V>(capacity: number): LRU<K, V>;
|
|
1651
|
-
}
|
|
1652
|
-
}
|
|
1653
|
-
|
|
1654
|
-
export {}
|
|
1
|
+
// Copyright 2021 The dotcoo <dotcoo@163.com>. All rights reserved.
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* ES 扩展类型定义
|
|
5
|
+
* 为 JavaScript 内置对象添加扩展方法
|
|
6
|
+
*/
|
|
7
|
+
declare global {
|
|
8
|
+
/**
|
|
9
|
+
* Object 构造函数扩展
|
|
10
|
+
*/
|
|
11
|
+
interface ObjectConstructor {
|
|
12
|
+
/**
|
|
13
|
+
* 创建一个新的 Object 实例
|
|
14
|
+
*/
|
|
15
|
+
new(): Record<string, any>;
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* 检查一个值是否为对象
|
|
19
|
+
* @param o 要检查的值
|
|
20
|
+
* @returns 如果是对象返回 true,否则返回 false
|
|
21
|
+
*/
|
|
22
|
+
isObject(o: any): boolean;
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* 合并多个对象
|
|
26
|
+
* @param args 要合并的对象列表
|
|
27
|
+
* @returns 合并后的新对象
|
|
28
|
+
*/
|
|
29
|
+
merge(...args: Record<string, any>[]): Record<string, any>;
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* 连接多个对象
|
|
33
|
+
* @param args 要连接的对象列表, 数组会合并, 而不是覆盖
|
|
34
|
+
* @returns 连接后的新对象
|
|
35
|
+
*/
|
|
36
|
+
concat(...args: Record<string, any>[]): Record<string, any>;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* Object 实例扩展
|
|
41
|
+
*/
|
|
42
|
+
interface Object {
|
|
43
|
+
/**
|
|
44
|
+
* 克隆对象
|
|
45
|
+
* @returns 克隆后的新对象
|
|
46
|
+
*/
|
|
47
|
+
$clone(): Record<string, any>;
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* 获取对象的长度(属性数量)
|
|
51
|
+
* @returns 对象的属性数量
|
|
52
|
+
*/
|
|
53
|
+
$length(): number;
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* 获取对象的键值对迭代器
|
|
57
|
+
* @returns 键值对迭代器
|
|
58
|
+
*/
|
|
59
|
+
$entries(): [string, any][];
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* 获取对象的键迭代器
|
|
63
|
+
* @returns 键迭代器
|
|
64
|
+
*/
|
|
65
|
+
$keys(): string[];
|
|
66
|
+
|
|
67
|
+
/**
|
|
68
|
+
* 获取对象的值迭代器
|
|
69
|
+
* @returns 值迭代器
|
|
70
|
+
*/
|
|
71
|
+
$values(): any[];
|
|
72
|
+
|
|
73
|
+
/**
|
|
74
|
+
* 分配属性到对象
|
|
75
|
+
* @param args 要分配的属性源
|
|
76
|
+
* @returns 分配后的对象
|
|
77
|
+
*/
|
|
78
|
+
$assign(...sources: any[]): Record<string, any>;
|
|
79
|
+
|
|
80
|
+
/**
|
|
81
|
+
* 将值转换为 JSON 字符串
|
|
82
|
+
* @param v 要转换的值
|
|
83
|
+
* @param replacer 替换函数或数组
|
|
84
|
+
* @param space 缩进空格
|
|
85
|
+
* @returns JSON 字符串
|
|
86
|
+
*/
|
|
87
|
+
$stringify(replacer?: any, space?: string | number): string;
|
|
88
|
+
|
|
89
|
+
/**
|
|
90
|
+
* 合并多个对象到当前对象
|
|
91
|
+
* @param args 要合并的对象列表
|
|
92
|
+
* @returns 合并后的对象
|
|
93
|
+
*/
|
|
94
|
+
$merge(...args: Record<string, any>[]): Record<string, any>;
|
|
95
|
+
|
|
96
|
+
/**
|
|
97
|
+
* 连接多个对象到当前对象
|
|
98
|
+
* @param args 要连接的对象列表, 数组会合并, 而不是覆盖
|
|
99
|
+
* @returns 连接后的对象
|
|
100
|
+
*/
|
|
101
|
+
$concat(...args: Record<string, any>[]): Record<string, any>;
|
|
102
|
+
|
|
103
|
+
/**
|
|
104
|
+
* 检查对象是否为空
|
|
105
|
+
* @returns 如果对象为空返回 true,否则返回 false
|
|
106
|
+
*/
|
|
107
|
+
$empty(): boolean;
|
|
108
|
+
|
|
109
|
+
/**
|
|
110
|
+
* 检查对象是否包含指定键
|
|
111
|
+
* @param key 要检查的键
|
|
112
|
+
* @returns 如果包含指定键返回 true,否则返回 false
|
|
113
|
+
*/
|
|
114
|
+
$has(key: string): boolean;
|
|
115
|
+
|
|
116
|
+
/**
|
|
117
|
+
* 从对象中选取指定键的属性
|
|
118
|
+
* @param keys 要选取的键列表
|
|
119
|
+
* @returns 包含指定键属性的新对象
|
|
120
|
+
*/
|
|
121
|
+
$pick(...keys: string[]): Record<string, any>;
|
|
122
|
+
|
|
123
|
+
/**
|
|
124
|
+
* 从对象中排除指定键的属性
|
|
125
|
+
* @param keys 要排除的键列表
|
|
126
|
+
* @returns 排除指定键属性的新对象
|
|
127
|
+
*/
|
|
128
|
+
$omit(...keys: string[]): Record<string, any>;
|
|
129
|
+
|
|
130
|
+
/**
|
|
131
|
+
* 获取对象的属性
|
|
132
|
+
* @param key 属性键
|
|
133
|
+
* @returns 属性值
|
|
134
|
+
*/
|
|
135
|
+
$attr(key: string): any;
|
|
136
|
+
|
|
137
|
+
/**
|
|
138
|
+
* 设置对象的属性
|
|
139
|
+
* @param key 属性键
|
|
140
|
+
* @param val 属性值
|
|
141
|
+
* @returns 当前对象
|
|
142
|
+
*/
|
|
143
|
+
$attr(key: string, val: any): this;
|
|
144
|
+
|
|
145
|
+
/**
|
|
146
|
+
* 获取对象的属性(带默认值)
|
|
147
|
+
* @param key 属性键
|
|
148
|
+
* @param val 属性值
|
|
149
|
+
* @param defval 默认值
|
|
150
|
+
* @returns 属性值
|
|
151
|
+
*/
|
|
152
|
+
$attr(key: string, defval: any, options: { defval: any }): any;
|
|
153
|
+
|
|
154
|
+
/**
|
|
155
|
+
* 设置对象的属性(带存在性检查)
|
|
156
|
+
* @param key 属性键
|
|
157
|
+
* @param val 属性值
|
|
158
|
+
* @param exists 是否检查属性是否存在
|
|
159
|
+
* @returns 当前对象
|
|
160
|
+
*/
|
|
161
|
+
$attr(key: string, val: any, options: { exists: boolean }): this;
|
|
162
|
+
|
|
163
|
+
/**
|
|
164
|
+
* 设置对象的属性(带存在性检查)
|
|
165
|
+
* @param key 属性键
|
|
166
|
+
* @param val 属性值
|
|
167
|
+
* @param define 属性定义
|
|
168
|
+
* @returns 当前对象
|
|
169
|
+
*/
|
|
170
|
+
$attr(key: string, val: any, options: { define: any }): this;
|
|
171
|
+
|
|
172
|
+
/**
|
|
173
|
+
* 属性四则运算(带定义选项)
|
|
174
|
+
* @param key 属性键
|
|
175
|
+
* @param val 属性值
|
|
176
|
+
* @param defval 默认值
|
|
177
|
+
* @param add 加法值
|
|
178
|
+
* @param sub 减法值
|
|
179
|
+
* @param mul 乘法值
|
|
180
|
+
* @param div 除法值
|
|
181
|
+
* @returns 当前对象
|
|
182
|
+
*/
|
|
183
|
+
$attr(key: string, val: any, options: { defval: any, add: number, sub: number, mul: number, div: number }): this;
|
|
184
|
+
|
|
185
|
+
/**
|
|
186
|
+
* 通过管道函数处理对象
|
|
187
|
+
* @param pipe 管道函数
|
|
188
|
+
* @param args 额外参数
|
|
189
|
+
* @returns 管道函数的返回值
|
|
190
|
+
*/
|
|
191
|
+
$pipe<T>(pipe: (value: this, ...args: any[]) => T, ...args: any[]): T;
|
|
192
|
+
|
|
193
|
+
/**
|
|
194
|
+
* 执行副作用函数并返回原对象
|
|
195
|
+
* @param tee 副作用函数
|
|
196
|
+
* @param args 额外参数
|
|
197
|
+
* @returns 原对象
|
|
198
|
+
*/
|
|
199
|
+
$tee(tee: (value: this, ...args: any[]) => void, ...args: any[]): this;
|
|
200
|
+
|
|
201
|
+
/**
|
|
202
|
+
* 将对象转换为数组
|
|
203
|
+
* @returns 对象转换后的数组
|
|
204
|
+
*/
|
|
205
|
+
$toArray(): any[];
|
|
206
|
+
|
|
207
|
+
/**
|
|
208
|
+
* 输出调试信息
|
|
209
|
+
* @param args 调试信息
|
|
210
|
+
* @returns 原对象
|
|
211
|
+
*/
|
|
212
|
+
$debug(...args: any[]): this;
|
|
213
|
+
|
|
214
|
+
/**
|
|
215
|
+
* 输出日志信息
|
|
216
|
+
* @param args 日志信息
|
|
217
|
+
* @returns 原对象
|
|
218
|
+
*/
|
|
219
|
+
$log(...args: any[]): this;
|
|
220
|
+
|
|
221
|
+
/**
|
|
222
|
+
* 输出信息
|
|
223
|
+
* @param args 信息
|
|
224
|
+
* @returns 原对象
|
|
225
|
+
*/
|
|
226
|
+
$info(...args: any[]): this;
|
|
227
|
+
|
|
228
|
+
/**
|
|
229
|
+
* 输出警告信息
|
|
230
|
+
* @param args 警告信息
|
|
231
|
+
* @returns 原对象
|
|
232
|
+
*/
|
|
233
|
+
$warn(...args: any[]): this;
|
|
234
|
+
|
|
235
|
+
/**
|
|
236
|
+
* 输出错误信息
|
|
237
|
+
* @param args 错误信息
|
|
238
|
+
* @returns 原对象
|
|
239
|
+
*/
|
|
240
|
+
$error(...args: any[]): this;
|
|
241
|
+
|
|
242
|
+
/**
|
|
243
|
+
* 输出对象的详细信息
|
|
244
|
+
* @param args 额外参数
|
|
245
|
+
* @returns 原对象
|
|
246
|
+
*/
|
|
247
|
+
$dir(...args: any[]): this;
|
|
248
|
+
|
|
249
|
+
/**
|
|
250
|
+
* 触发调试器断点
|
|
251
|
+
* @param args 额外参数
|
|
252
|
+
* @returns 原对象
|
|
253
|
+
*/
|
|
254
|
+
$debugger(...args: any[]): this;
|
|
255
|
+
|
|
256
|
+
/**
|
|
257
|
+
* 获取对象的父级链
|
|
258
|
+
* @param self 是否包含自身
|
|
259
|
+
* @param depth 深度限制
|
|
260
|
+
* @param parent 父级属性名
|
|
261
|
+
* @returns 父级链数组
|
|
262
|
+
*/
|
|
263
|
+
$getParents(self?: boolean, depth?: number, parent?: string): any[];
|
|
264
|
+
|
|
265
|
+
/**
|
|
266
|
+
* 获取对象的子级链
|
|
267
|
+
* @param self 是否包含自身
|
|
268
|
+
* @param depth 深度限制
|
|
269
|
+
* @param children 子级属性名
|
|
270
|
+
* @returns 子级链数组
|
|
271
|
+
*/
|
|
272
|
+
$getChildrens(self?: boolean, depth?: number, children?: string): any[];
|
|
273
|
+
|
|
274
|
+
/**
|
|
275
|
+
* 在树结构中查找节点
|
|
276
|
+
* @param cb 查找回调函数
|
|
277
|
+
* @param self 是否包含自身
|
|
278
|
+
* @param depth 深度限制
|
|
279
|
+
* @param children 子级属性名
|
|
280
|
+
* @returns 找到的节点
|
|
281
|
+
*/
|
|
282
|
+
$tree$find(cb: (node: any) => boolean, self?: boolean, depth?: number, children?: string): any;
|
|
283
|
+
|
|
284
|
+
/**
|
|
285
|
+
* 遍历树结构中的节点
|
|
286
|
+
* @param cb 遍历回调函数
|
|
287
|
+
* @param self 是否包含自身
|
|
288
|
+
* @param depth 深度限制
|
|
289
|
+
* @param children 子级属性名
|
|
290
|
+
*/
|
|
291
|
+
$tree$each(cb: (node: any) => void, self?: boolean, depth?: number, children?: string): void;
|
|
292
|
+
|
|
293
|
+
/**
|
|
294
|
+
* 映射树结构中的节点
|
|
295
|
+
* @param cb 映射回调函数
|
|
296
|
+
* @param self 是否包含自身
|
|
297
|
+
* @param depth 深度限制
|
|
298
|
+
* @param children 子级属性名
|
|
299
|
+
* @param empty 空值处理
|
|
300
|
+
* @returns 映射后的树结构
|
|
301
|
+
*/
|
|
302
|
+
$tree$map(cb: (node: any) => any, self?: boolean, depth?: number, children?: string, empty?: any): any;
|
|
303
|
+
}
|
|
304
|
+
|
|
305
|
+
/**
|
|
306
|
+
* Number 实例扩展
|
|
307
|
+
*/
|
|
308
|
+
interface Number {
|
|
309
|
+
/**
|
|
310
|
+
* 向上取整
|
|
311
|
+
* @returns 向上取整后的值
|
|
312
|
+
*/
|
|
313
|
+
ceil(): number;
|
|
314
|
+
|
|
315
|
+
/**
|
|
316
|
+
* 向下取整
|
|
317
|
+
* @returns 向下取整后的值
|
|
318
|
+
*/
|
|
319
|
+
floor(): number;
|
|
320
|
+
|
|
321
|
+
/**
|
|
322
|
+
* 截断小数部分
|
|
323
|
+
* @returns 截断后的值
|
|
324
|
+
*/
|
|
325
|
+
trunc(): number;
|
|
326
|
+
|
|
327
|
+
/**
|
|
328
|
+
* 获取绝对值
|
|
329
|
+
* @returns 绝对值
|
|
330
|
+
*/
|
|
331
|
+
abs(): number;
|
|
332
|
+
|
|
333
|
+
/**
|
|
334
|
+
* 获取最大值
|
|
335
|
+
* @param args 比较值列表
|
|
336
|
+
* @returns 最大值
|
|
337
|
+
*/
|
|
338
|
+
max(...args: number[]): number;
|
|
339
|
+
|
|
340
|
+
/**
|
|
341
|
+
* 获取最小值
|
|
342
|
+
* @param args 比较值列表
|
|
343
|
+
* @returns 最小值
|
|
344
|
+
*/
|
|
345
|
+
min(...args: number[]): number;
|
|
346
|
+
|
|
347
|
+
/**
|
|
348
|
+
* 固定小数位数
|
|
349
|
+
* @param decimal 小数位数
|
|
350
|
+
* @returns 固定小数位数后的值
|
|
351
|
+
*/
|
|
352
|
+
fixed(decimal?: number): number;
|
|
353
|
+
|
|
354
|
+
/**
|
|
355
|
+
* 四舍五入
|
|
356
|
+
* @param precision 精度
|
|
357
|
+
* @returns 四舍五入后的值
|
|
358
|
+
*/
|
|
359
|
+
round(precision?: number): number;
|
|
360
|
+
|
|
361
|
+
/**
|
|
362
|
+
* 加法运算
|
|
363
|
+
* @param v 加数
|
|
364
|
+
* @returns 加法结果
|
|
365
|
+
*/
|
|
366
|
+
add(v: number): number;
|
|
367
|
+
|
|
368
|
+
/**
|
|
369
|
+
* 使用函数进行加法运算
|
|
370
|
+
* @param v 加法函数
|
|
371
|
+
* @param args 函数参数
|
|
372
|
+
* @returns 加法结果
|
|
373
|
+
*/
|
|
374
|
+
add(v: ((v:number, ...args: any[]) => number), ...args: any[]): number;
|
|
375
|
+
|
|
376
|
+
/**
|
|
377
|
+
* 减法运算
|
|
378
|
+
* @param v 减数
|
|
379
|
+
* @returns 减法结果
|
|
380
|
+
*/
|
|
381
|
+
sub(v: number): number;
|
|
382
|
+
|
|
383
|
+
/**
|
|
384
|
+
* 使用函数进行减法运算
|
|
385
|
+
* @param v 减法函数
|
|
386
|
+
* @param args 函数参数
|
|
387
|
+
* @returns 减法结果
|
|
388
|
+
*/
|
|
389
|
+
sub(v: ((v:number, ...args: any[]) => number), ...args: any[]): number;
|
|
390
|
+
|
|
391
|
+
/**
|
|
392
|
+
* 乘法运算
|
|
393
|
+
* @param v 乘数
|
|
394
|
+
* @returns 乘法结果
|
|
395
|
+
*/
|
|
396
|
+
mul(v: number): number;
|
|
397
|
+
|
|
398
|
+
/**
|
|
399
|
+
* 使用函数进行乘法运算
|
|
400
|
+
* @param v 乘法函数
|
|
401
|
+
* @param args 函数参数
|
|
402
|
+
* @returns 乘法结果
|
|
403
|
+
*/
|
|
404
|
+
mul(v: ((v:number, ...args: any[]) => number), ...args: any[]): number;
|
|
405
|
+
|
|
406
|
+
/**
|
|
407
|
+
* 除法运算
|
|
408
|
+
* @param v 除数
|
|
409
|
+
* @returns 除法结果
|
|
410
|
+
*/
|
|
411
|
+
div(v: number): number;
|
|
412
|
+
|
|
413
|
+
/**
|
|
414
|
+
* 使用函数进行除法运算
|
|
415
|
+
* @param v 除法函数
|
|
416
|
+
* @param args 函数参数
|
|
417
|
+
* @returns 除法结果
|
|
418
|
+
*/
|
|
419
|
+
div(v: ((v:number, ...args: any[]) => number), ...args: any[]): number;
|
|
420
|
+
|
|
421
|
+
/**
|
|
422
|
+
* 进制转换
|
|
423
|
+
* @param base 目标进制
|
|
424
|
+
* @returns 转换后的字符串
|
|
425
|
+
*/
|
|
426
|
+
baseConvert(base?: number): string;
|
|
427
|
+
|
|
428
|
+
/**
|
|
429
|
+
* 单位转换
|
|
430
|
+
* @param units 单位定义
|
|
431
|
+
* @param decimal 小数位数
|
|
432
|
+
* @returns 转换后的字符串
|
|
433
|
+
*/
|
|
434
|
+
unit(units: Record<string, number>, decimal?: number): string;
|
|
435
|
+
|
|
436
|
+
/**
|
|
437
|
+
* 单位转换(支持数组输出)
|
|
438
|
+
* @param units 单位定义
|
|
439
|
+
* @param array 是否返回数组
|
|
440
|
+
* @returns 转换后的字符串或数组
|
|
441
|
+
*/
|
|
442
|
+
units(units: Record<string, number>, array?: boolean): string | [number, string][];
|
|
443
|
+
|
|
444
|
+
/**
|
|
445
|
+
* 转换为日期对象
|
|
446
|
+
* @returns 日期对象
|
|
447
|
+
*/
|
|
448
|
+
toDate(): Date;
|
|
449
|
+
}
|
|
450
|
+
|
|
451
|
+
/**
|
|
452
|
+
* BigInt 实例扩展
|
|
453
|
+
*/
|
|
454
|
+
interface BigInt {
|
|
455
|
+
/**
|
|
456
|
+
* 转换为 JSON 格式
|
|
457
|
+
* @returns 转换后的数字或字符串
|
|
458
|
+
*/
|
|
459
|
+
toJSON(): number | string;
|
|
460
|
+
}
|
|
461
|
+
|
|
462
|
+
/**
|
|
463
|
+
* String 构造函数扩展
|
|
464
|
+
*/
|
|
465
|
+
interface StringConstructor {
|
|
466
|
+
/**
|
|
467
|
+
* 创建一个新的 String 实例
|
|
468
|
+
*/
|
|
469
|
+
new(): string;
|
|
470
|
+
}
|
|
471
|
+
|
|
472
|
+
/**
|
|
473
|
+
* String 实例扩展
|
|
474
|
+
*/
|
|
475
|
+
interface String {
|
|
476
|
+
/**
|
|
477
|
+
* 获取字符串长度
|
|
478
|
+
* @returns 字符串长度
|
|
479
|
+
*/
|
|
480
|
+
$length(): number;
|
|
481
|
+
|
|
482
|
+
/**
|
|
483
|
+
* 截取子字符串
|
|
484
|
+
* @param s 开始位置
|
|
485
|
+
* @param e 结束位置
|
|
486
|
+
* @returns 截取的子字符串
|
|
487
|
+
*/
|
|
488
|
+
$substring(s?: number, e?: number): string;
|
|
489
|
+
|
|
490
|
+
/**
|
|
491
|
+
* 截取子字符串(从指定位置开始)
|
|
492
|
+
* @param s 开始位置
|
|
493
|
+
* @param e 长度
|
|
494
|
+
* @returns 截取的子字符串
|
|
495
|
+
*/
|
|
496
|
+
$substr(s?: number, e?: number): string;
|
|
497
|
+
|
|
498
|
+
/**
|
|
499
|
+
* 分割字符串
|
|
500
|
+
* @param s 分隔符
|
|
501
|
+
* @param n 分割数量
|
|
502
|
+
* @returns 分割后的数组
|
|
503
|
+
*/
|
|
504
|
+
$split(s?: string, n?: number): string[];
|
|
505
|
+
|
|
506
|
+
/**
|
|
507
|
+
* 分割字符串并转换为数字数组
|
|
508
|
+
* @param s 分隔符
|
|
509
|
+
* @returns 数字数组
|
|
510
|
+
*/
|
|
511
|
+
$split$number(s?: string): number[];
|
|
512
|
+
|
|
513
|
+
/**
|
|
514
|
+
* 按指定长度分割字符串
|
|
515
|
+
* @param n 分割长度
|
|
516
|
+
* @returns 分割后的数组
|
|
517
|
+
*/
|
|
518
|
+
$split$segment(n?: number): string[];
|
|
519
|
+
|
|
520
|
+
/**
|
|
521
|
+
* 格式化字符串
|
|
522
|
+
* @param args 格式化参数
|
|
523
|
+
* @returns 格式化后的字符串
|
|
524
|
+
*/
|
|
525
|
+
sprintf(...args: any[]): string;
|
|
526
|
+
|
|
527
|
+
/**
|
|
528
|
+
* 提取两个字符串之间的内容
|
|
529
|
+
* @param begin 开始字符串
|
|
530
|
+
* @param end 结束字符串
|
|
531
|
+
* @param n 提取数量
|
|
532
|
+
* @param position 开始位置
|
|
533
|
+
* @returns 提取的内容
|
|
534
|
+
*/
|
|
535
|
+
subOf(begin: string, end: string, n?: number, position?: number): string;
|
|
536
|
+
|
|
537
|
+
/**
|
|
538
|
+
* 从末尾提取两个字符串之间的内容
|
|
539
|
+
* @param begin 开始字符串
|
|
540
|
+
* @param end 结束字符串
|
|
541
|
+
* @param n 提取数量
|
|
542
|
+
* @param position 开始位置
|
|
543
|
+
* @returns 提取的内容
|
|
544
|
+
*/
|
|
545
|
+
lastSubOf(begin: string, end: string, n?: number, position?: number): string;
|
|
546
|
+
|
|
547
|
+
/**
|
|
548
|
+
* 驼峰命名转换为下划线命名
|
|
549
|
+
* @returns 下划线命名的字符串
|
|
550
|
+
*/
|
|
551
|
+
camel2under(): string;
|
|
552
|
+
|
|
553
|
+
/**
|
|
554
|
+
* 下划线命名转换为驼峰命名
|
|
555
|
+
* @returns 驼峰命名的字符串
|
|
556
|
+
*/
|
|
557
|
+
under2camel(): string;
|
|
558
|
+
|
|
559
|
+
/**
|
|
560
|
+
* 驼峰命名转换为帕斯卡命名
|
|
561
|
+
* @returns 帕斯卡命名的字符串
|
|
562
|
+
*/
|
|
563
|
+
camel2pascal(): string;
|
|
564
|
+
|
|
565
|
+
/**
|
|
566
|
+
* 帕斯卡命名转换为驼峰命名
|
|
567
|
+
* @returns 驼峰命名的字符串
|
|
568
|
+
*/
|
|
569
|
+
pascal2camel(): string;
|
|
570
|
+
|
|
571
|
+
/**
|
|
572
|
+
* 下划线命名转换为短横线命名
|
|
573
|
+
* @returns 短横线命名的字符串
|
|
574
|
+
*/
|
|
575
|
+
under2kebab(): string;
|
|
576
|
+
|
|
577
|
+
/**
|
|
578
|
+
* 短横线命名转换为下划线命名
|
|
579
|
+
* @returns 下划线命名的字符串
|
|
580
|
+
*/
|
|
581
|
+
kebab2under(): string;
|
|
582
|
+
|
|
583
|
+
/**
|
|
584
|
+
* 进制转换
|
|
585
|
+
* @param base 目标进制
|
|
586
|
+
* @returns 转换后的字符串
|
|
587
|
+
*/
|
|
588
|
+
baseConvert(base?: number): string;
|
|
589
|
+
|
|
590
|
+
/**
|
|
591
|
+
* 固定小数位数
|
|
592
|
+
* @param decimal 小数位数
|
|
593
|
+
* @returns 固定小数位数后的字符串
|
|
594
|
+
*/
|
|
595
|
+
fixed(decimal?: number): string;
|
|
596
|
+
|
|
597
|
+
/**
|
|
598
|
+
* 转换为日期对象
|
|
599
|
+
* @returns 日期对象
|
|
600
|
+
*/
|
|
601
|
+
toDate(): Date;
|
|
602
|
+
|
|
603
|
+
/**
|
|
604
|
+
* 转换为 Uint8Array
|
|
605
|
+
* @returns Uint8Array
|
|
606
|
+
*/
|
|
607
|
+
toUint8Array(): Uint8Array;
|
|
608
|
+
|
|
609
|
+
/**
|
|
610
|
+
* 十六进制编码
|
|
611
|
+
* @returns 十六进制编码的字符串
|
|
612
|
+
*/
|
|
613
|
+
hexencode(): string;
|
|
614
|
+
|
|
615
|
+
/**
|
|
616
|
+
* 十六进制解码
|
|
617
|
+
* @returns 解码后的字符串
|
|
618
|
+
*/
|
|
619
|
+
hexdecode(): string;
|
|
620
|
+
|
|
621
|
+
/**
|
|
622
|
+
* Base64 编码
|
|
623
|
+
* @returns Base64 编码的字符串
|
|
624
|
+
*/
|
|
625
|
+
base64encode(): string;
|
|
626
|
+
|
|
627
|
+
/**
|
|
628
|
+
* Base64 解码
|
|
629
|
+
* @returns 解码后的字符串
|
|
630
|
+
*/
|
|
631
|
+
base64decode(): string;
|
|
632
|
+
}
|
|
633
|
+
|
|
634
|
+
/**
|
|
635
|
+
* Array 构造函数扩展
|
|
636
|
+
*/
|
|
637
|
+
interface ArrayConstructor {
|
|
638
|
+
/**
|
|
639
|
+
* 创建一个新的数组实例
|
|
640
|
+
*/
|
|
641
|
+
new(): any[];
|
|
642
|
+
|
|
643
|
+
/**
|
|
644
|
+
* 创建一个新的泛型数组实例
|
|
645
|
+
*/
|
|
646
|
+
new<T>(): T[];
|
|
647
|
+
|
|
648
|
+
/**
|
|
649
|
+
* 通过元素创建一个新的数组实例
|
|
650
|
+
* @param items 数组元素
|
|
651
|
+
*/
|
|
652
|
+
new<T>(...items: T[]): T[];
|
|
653
|
+
|
|
654
|
+
/**
|
|
655
|
+
* 通过长度创建一个新的数组实例
|
|
656
|
+
* @param length 数组长度
|
|
657
|
+
*/
|
|
658
|
+
new<T>(length: number): T[];
|
|
659
|
+
|
|
660
|
+
/**
|
|
661
|
+
* 创建一个范围数组
|
|
662
|
+
* @param end 结束值
|
|
663
|
+
* @param callback 回调函数
|
|
664
|
+
* @param input 是否将索引作为输入
|
|
665
|
+
* @returns 范围数组
|
|
666
|
+
*/
|
|
667
|
+
range<T>(end: number, callback?: ((number: number, i: number, a: T[]) => T), input?: boolean): T[];
|
|
668
|
+
|
|
669
|
+
/**
|
|
670
|
+
* 创建一个范围数组
|
|
671
|
+
* @param start 开始值
|
|
672
|
+
* @param end 结束值
|
|
673
|
+
* @param callback 回调函数
|
|
674
|
+
* @param input 是否将索引作为输入
|
|
675
|
+
* @returns 范围数组
|
|
676
|
+
*/
|
|
677
|
+
range<T>(start: number, end: number, callback?: ((number: number, i: number, a: T[]) => T), input?: boolean): T[];
|
|
678
|
+
|
|
679
|
+
/**
|
|
680
|
+
* 创建一个范围数组
|
|
681
|
+
* @param start 开始值
|
|
682
|
+
* @param end 结束值
|
|
683
|
+
* @param step 步长
|
|
684
|
+
* @param callback 回调函数
|
|
685
|
+
* @param input 是否将索引作为输入
|
|
686
|
+
* @returns 范围数组
|
|
687
|
+
*/
|
|
688
|
+
range<T>(start: number, end: number, step: number, callback?: ((number: number, i: number, a: T[]) => T), input?: boolean): T[];
|
|
689
|
+
}
|
|
690
|
+
|
|
691
|
+
/**
|
|
692
|
+
* Array 实例扩展
|
|
693
|
+
*/
|
|
694
|
+
interface Array<T> {
|
|
695
|
+
/**
|
|
696
|
+
* 获取数组长度
|
|
697
|
+
* @returns 数组长度
|
|
698
|
+
*/
|
|
699
|
+
$length(): number;
|
|
700
|
+
|
|
701
|
+
/**
|
|
702
|
+
* 获取数组的键值对迭代器
|
|
703
|
+
* @returns 键值对迭代器
|
|
704
|
+
*/
|
|
705
|
+
$entries(): [number, T][];
|
|
706
|
+
|
|
707
|
+
/**
|
|
708
|
+
* 获取数组的键迭代器
|
|
709
|
+
* @returns 键迭代器
|
|
710
|
+
*/
|
|
711
|
+
$keys(): number[];
|
|
712
|
+
|
|
713
|
+
/**
|
|
714
|
+
* 获取数组的值迭代器
|
|
715
|
+
* @returns 值迭代器
|
|
716
|
+
*/
|
|
717
|
+
$values(): T[];
|
|
718
|
+
|
|
719
|
+
/**
|
|
720
|
+
* 映射数组元素
|
|
721
|
+
* @param callback 映射函数
|
|
722
|
+
* @returns 映射后的新数组
|
|
723
|
+
*/
|
|
724
|
+
$map<U>(callback: (v: T, i: number, array: T[]) => U): U[];
|
|
725
|
+
|
|
726
|
+
/**
|
|
727
|
+
* 向数组末尾添加元素, 并返回当前数组
|
|
728
|
+
* @param items 要添加的元素
|
|
729
|
+
* @returns 添加后的数组
|
|
730
|
+
*/
|
|
731
|
+
$push(...items: T[]): T[];
|
|
732
|
+
|
|
733
|
+
/**
|
|
734
|
+
* 从数组末尾移除元素, 并返回当前数组
|
|
735
|
+
* @returns 移除元素后的数组
|
|
736
|
+
*/
|
|
737
|
+
$pop(): T[];
|
|
738
|
+
|
|
739
|
+
/**
|
|
740
|
+
* 从数组开头移除元素, 并返回当前数组
|
|
741
|
+
* @returns 移除元素后的数组
|
|
742
|
+
*/
|
|
743
|
+
$shift(): T[];
|
|
744
|
+
|
|
745
|
+
/**
|
|
746
|
+
* 向数组开头添加元素, 并返回当前数组
|
|
747
|
+
* @param items 要添加的元素
|
|
748
|
+
* @returns 添加后的数组
|
|
749
|
+
*/
|
|
750
|
+
$unshift(...items: T[]): T[];
|
|
751
|
+
|
|
752
|
+
/**
|
|
753
|
+
* 从数组中删除元素并添加新元素, 并返回当前数组
|
|
754
|
+
* @param start 开始位置
|
|
755
|
+
* @param deleteCount 删除数量
|
|
756
|
+
* @param items 要添加的元素
|
|
757
|
+
* @returns 被删除的元素数组
|
|
758
|
+
*/
|
|
759
|
+
$splice(start: number, deleteCount?: number, ...items: T[]): T[];
|
|
760
|
+
|
|
761
|
+
/**
|
|
762
|
+
* 向数组末尾添加元素(返回添加的元素)
|
|
763
|
+
* @param items 要添加的元素
|
|
764
|
+
* @returns 添加后的数组
|
|
765
|
+
*/
|
|
766
|
+
$pusha(...items: T[]): T[];
|
|
767
|
+
|
|
768
|
+
/**
|
|
769
|
+
* 向数组开头添加元素(返回添加的元素)
|
|
770
|
+
* @param items 要添加的元素
|
|
771
|
+
* @returns 添加后的数组
|
|
772
|
+
*/
|
|
773
|
+
$unshifta(...items: T[]): T[];
|
|
774
|
+
|
|
775
|
+
/**
|
|
776
|
+
* 向数组末尾添加元素(返回第一个添加的元素)
|
|
777
|
+
* @param items 要添加的元素
|
|
778
|
+
* @returns 第一个添加的元素
|
|
779
|
+
*/
|
|
780
|
+
$push0(...items: T[]): T;
|
|
781
|
+
|
|
782
|
+
/**
|
|
783
|
+
* 向数组开头添加元素(返回第一个添加的元素)
|
|
784
|
+
* @param items 要添加的元素
|
|
785
|
+
* @returns 第一个添加的元素
|
|
786
|
+
*/
|
|
787
|
+
$unshift0(...items: T[]): T;
|
|
788
|
+
|
|
789
|
+
/**
|
|
790
|
+
* 检查数组是否为空
|
|
791
|
+
* @returns 如果数组为空返回 true,否则返回 false
|
|
792
|
+
*/
|
|
793
|
+
$empty(): boolean;
|
|
794
|
+
|
|
795
|
+
/**
|
|
796
|
+
* 获取数组的第一个元素
|
|
797
|
+
* @param defval 默认值
|
|
798
|
+
* @returns 第一个元素或默认值
|
|
799
|
+
*/
|
|
800
|
+
first(defval?: T): T;
|
|
801
|
+
|
|
802
|
+
/**
|
|
803
|
+
* 获取数组的最后一个元素
|
|
804
|
+
* @param defval 默认值
|
|
805
|
+
* @returns 最后一个元素或默认值
|
|
806
|
+
*/
|
|
807
|
+
last(defval?: T): T;
|
|
808
|
+
|
|
809
|
+
/**
|
|
810
|
+
* 查找数组中的元素
|
|
811
|
+
* @param cb 查找回调函数
|
|
812
|
+
* @param defval 默认值
|
|
813
|
+
* @returns 找到的元素或默认值
|
|
814
|
+
*/
|
|
815
|
+
$find(cb: (value: T, index: number, array: T[]) => boolean, defval?: T): T;
|
|
816
|
+
|
|
817
|
+
/**
|
|
818
|
+
* 比较两个数组是否相等
|
|
819
|
+
* @param a 要比较的数组
|
|
820
|
+
* @returns 如果相等返回 true,否则返回 false
|
|
821
|
+
*/
|
|
822
|
+
equals(a: T[]): boolean;
|
|
823
|
+
|
|
824
|
+
/**
|
|
825
|
+
* 去重数组元素
|
|
826
|
+
* @param cb 比较函数
|
|
827
|
+
* @returns 去重后的新数组
|
|
828
|
+
*/
|
|
829
|
+
unique(cb?: (value: T) => any): T[];
|
|
830
|
+
|
|
831
|
+
/**
|
|
832
|
+
* 遍历数组元素
|
|
833
|
+
* @param cb 遍历回调函数
|
|
834
|
+
* @returns 原数组
|
|
835
|
+
*/
|
|
836
|
+
each(cb: (value: T, index: number, array: T[]) => void): T[];
|
|
837
|
+
|
|
838
|
+
/**
|
|
839
|
+
* 异步遍历数组元素
|
|
840
|
+
* @param cb 异步遍历回调函数
|
|
841
|
+
* @returns Promise,解析为原数组
|
|
842
|
+
*/
|
|
843
|
+
each$async(cb: (value: T, index: number, array: T[]) => Promise<void>): Promise<T[]>;
|
|
844
|
+
|
|
845
|
+
/**
|
|
846
|
+
* 异步映射数组元素
|
|
847
|
+
* @param cb 异步映射函数
|
|
848
|
+
* @returns Promise,解析为映射后的新数组
|
|
849
|
+
*/
|
|
850
|
+
map$async<U>(cb: (value: T, index: number, array: T[]) => Promise<U>): Promise<U[]>;
|
|
851
|
+
|
|
852
|
+
/**
|
|
853
|
+
* 打乱数组元素
|
|
854
|
+
* @param clone 是否克隆数组
|
|
855
|
+
* @returns 打乱后的数组
|
|
856
|
+
*/
|
|
857
|
+
shuffle(clone?: boolean): T[];
|
|
858
|
+
|
|
859
|
+
/**
|
|
860
|
+
* 计算两个数组的并集
|
|
861
|
+
* @param a 另一个数组
|
|
862
|
+
* @returns 并集数组
|
|
863
|
+
*/
|
|
864
|
+
union(a: T[]): T[];
|
|
865
|
+
|
|
866
|
+
/**
|
|
867
|
+
* 计算两个数组的交集
|
|
868
|
+
* @param a 另一个数组
|
|
869
|
+
* @returns 交集数组
|
|
870
|
+
*/
|
|
871
|
+
intersection(a: T[]): T[];
|
|
872
|
+
|
|
873
|
+
/**
|
|
874
|
+
* 计算两个数组的差集
|
|
875
|
+
* @param a 另一个数组
|
|
876
|
+
* @returns 差集数组
|
|
877
|
+
*/
|
|
878
|
+
difference(a: T[]): T[];
|
|
879
|
+
|
|
880
|
+
/**
|
|
881
|
+
* 计算两个数组的对称差集
|
|
882
|
+
* @param a 另一个数组
|
|
883
|
+
* @returns 对称差集数组
|
|
884
|
+
*/
|
|
885
|
+
symmetricDifference(a: T[]): T[];
|
|
886
|
+
|
|
887
|
+
/**
|
|
888
|
+
* 转换为 Map
|
|
889
|
+
* @param cb 转换函数
|
|
890
|
+
* @returns 转换后的 Map
|
|
891
|
+
*/
|
|
892
|
+
toMap(cb?: (value: T, index: number) => [any, any]): Map<any, any>;
|
|
893
|
+
|
|
894
|
+
/**
|
|
895
|
+
* 转换为 Set
|
|
896
|
+
* @param cb 转换函数
|
|
897
|
+
* @returns 转换后的 Set
|
|
898
|
+
*/
|
|
899
|
+
toSet(cb?: (value: T) => any): Set<any>;
|
|
900
|
+
|
|
901
|
+
/**
|
|
902
|
+
* 转换为 Uint8Array
|
|
903
|
+
* @returns 转换后的 Uint8Array
|
|
904
|
+
*/
|
|
905
|
+
toUint8Array(): Uint8Array;
|
|
906
|
+
|
|
907
|
+
/**
|
|
908
|
+
* 转换为 Base64 字符串
|
|
909
|
+
* @returns Base64 字符串
|
|
910
|
+
*/
|
|
911
|
+
toBase64(): string;
|
|
912
|
+
|
|
913
|
+
/**
|
|
914
|
+
* 转换为十六进制字符串
|
|
915
|
+
* @returns 十六进制字符串
|
|
916
|
+
*/
|
|
917
|
+
toHex(): string;
|
|
918
|
+
|
|
919
|
+
/**
|
|
920
|
+
* 解码字符串
|
|
921
|
+
* @returns 解码后的字符串
|
|
922
|
+
*/
|
|
923
|
+
decode(): string;
|
|
924
|
+
|
|
925
|
+
assoc(id: keyof T & string, prop: keyof T & string, assoc?: Record<string, any> | ((ids: T[]) => Record<string, any>)): this;
|
|
926
|
+
toTree(o?: { id?: string; pid?: string; level?: string; root?: string; parent?: string; children?: string; empty?: any; hasRoot?: boolean }): any;
|
|
927
|
+
$tree2tree(o?: { id?: string; pid?: string; level?: string; root?: string; parent?: string; children?: string; empty?: any }, r?: any, p?: any): any;
|
|
928
|
+
$tree$find(cb: (value: any) => boolean, self?: boolean, depth?: number, children?: string): any | null;
|
|
929
|
+
$tree$each(cb: (value: any) => void, self?: boolean, depth?: number, children?: string): this;
|
|
930
|
+
$tree$map<U>(cb: (value: any) => U, self?: boolean, depth?: number, children?: string, empty?: any): U[];
|
|
931
|
+
}
|
|
932
|
+
|
|
933
|
+
/**
|
|
934
|
+
* Map 构造函数扩展
|
|
935
|
+
*/
|
|
936
|
+
interface MapConstructor {
|
|
937
|
+
/**
|
|
938
|
+
* 创建一个新的 Map 实例
|
|
939
|
+
*/
|
|
940
|
+
new<K, V>(): Map<K, V>;
|
|
941
|
+
|
|
942
|
+
/**
|
|
943
|
+
* 通过迭代器创建一个新的 Map 实例
|
|
944
|
+
* @param iterator 迭代器
|
|
945
|
+
*/
|
|
946
|
+
new<K, V>(iterator: Iterator<K, V, V>): Map<K, V>;
|
|
947
|
+
}
|
|
948
|
+
|
|
949
|
+
/**
|
|
950
|
+
* Map 实例扩展
|
|
951
|
+
*/
|
|
952
|
+
interface Map<K, V> {
|
|
953
|
+
/**
|
|
954
|
+
* 获取 Map 的大小
|
|
955
|
+
* @returns Map 的大小
|
|
956
|
+
*/
|
|
957
|
+
$length(): number;
|
|
958
|
+
|
|
959
|
+
/**
|
|
960
|
+
* 获取 Map 的键值对迭代器
|
|
961
|
+
* @returns 键值对迭代器
|
|
962
|
+
*/
|
|
963
|
+
$entries(): IterableIterator<[K, V]>;
|
|
964
|
+
|
|
965
|
+
/**
|
|
966
|
+
* 获取 Map 的键迭代器
|
|
967
|
+
* @returns 键迭代器
|
|
968
|
+
*/
|
|
969
|
+
$keys(): IterableIterator<K>;
|
|
970
|
+
|
|
971
|
+
/**
|
|
972
|
+
* 获取 Map 的值迭代器
|
|
973
|
+
* @returns 值迭代器
|
|
974
|
+
*/
|
|
975
|
+
$values(): IterableIterator<V>;
|
|
976
|
+
|
|
977
|
+
/**
|
|
978
|
+
* 设置键值对, 并返回当前Map
|
|
979
|
+
* @param key 键
|
|
980
|
+
* @param value 值
|
|
981
|
+
* @returns Map 实例
|
|
982
|
+
*/
|
|
983
|
+
$set(key: K, value: V): Map<K, V>;
|
|
984
|
+
|
|
985
|
+
/**
|
|
986
|
+
* 删除键值对, 并返回当前Map
|
|
987
|
+
* @param key 键
|
|
988
|
+
* @returns Map 实例
|
|
989
|
+
*/
|
|
990
|
+
$delete(key: K): Map<K, V>;
|
|
991
|
+
|
|
992
|
+
/**
|
|
993
|
+
* 设置键值对并返回键值对数组
|
|
994
|
+
* @param key 键
|
|
995
|
+
* @param value 值
|
|
996
|
+
* @returns 键值对数组
|
|
997
|
+
*/
|
|
998
|
+
$seta(key: K, value: V): [K, V];
|
|
999
|
+
|
|
1000
|
+
/**
|
|
1001
|
+
* 删除键值对并返回键数组
|
|
1002
|
+
* @param key 键
|
|
1003
|
+
* @returns 键数组
|
|
1004
|
+
*/
|
|
1005
|
+
$deletea(key: K): [K];
|
|
1006
|
+
|
|
1007
|
+
/**
|
|
1008
|
+
* 设置键值对并返回键
|
|
1009
|
+
* @param key 键
|
|
1010
|
+
* @param value 值
|
|
1011
|
+
* @returns 键
|
|
1012
|
+
*/
|
|
1013
|
+
$set0(key: K, value: V): K;
|
|
1014
|
+
|
|
1015
|
+
/**
|
|
1016
|
+
* 删除键值对并返回键
|
|
1017
|
+
* @param key 键
|
|
1018
|
+
* @returns 键
|
|
1019
|
+
*/
|
|
1020
|
+
$delete0(key: K): K;
|
|
1021
|
+
|
|
1022
|
+
/**
|
|
1023
|
+
* 设置键值对并返回值
|
|
1024
|
+
* @param key 键
|
|
1025
|
+
* @param value 值
|
|
1026
|
+
* @returns 值
|
|
1027
|
+
*/
|
|
1028
|
+
$set1(key: K, value: V): V;
|
|
1029
|
+
|
|
1030
|
+
/**
|
|
1031
|
+
* 删除键值对并返回值
|
|
1032
|
+
* @param key 键
|
|
1033
|
+
* @returns 值
|
|
1034
|
+
*/
|
|
1035
|
+
$delete1(key: K): V;
|
|
1036
|
+
|
|
1037
|
+
/**
|
|
1038
|
+
* 获取值,如果不存在则插入默认值
|
|
1039
|
+
* @param key 键
|
|
1040
|
+
* @param defval 默认值
|
|
1041
|
+
* @returns 值
|
|
1042
|
+
*/
|
|
1043
|
+
$getOrInsert(key: K, defval?: V): V;
|
|
1044
|
+
|
|
1045
|
+
/**
|
|
1046
|
+
* 获取值,如果不存在则计算并插入
|
|
1047
|
+
* @param key 键
|
|
1048
|
+
* @param callback 计算函数
|
|
1049
|
+
* @returns 值
|
|
1050
|
+
*/
|
|
1051
|
+
$getOrInsertComputed(key: K, callback: (key: K) => V): V;
|
|
1052
|
+
|
|
1053
|
+
/**
|
|
1054
|
+
* 获取值,如果不存在则返回默认值
|
|
1055
|
+
* @param key 键
|
|
1056
|
+
* @param defval 默认值或计算函数
|
|
1057
|
+
* @returns 值
|
|
1058
|
+
*/
|
|
1059
|
+
$get(key: K, defval?: V | ((key: K) => V)): V;
|
|
1060
|
+
|
|
1061
|
+
/**
|
|
1062
|
+
* 异步获取值,如果不存在则返回默认值
|
|
1063
|
+
* @param key 键
|
|
1064
|
+
* @param defval 默认值或异步计算函数
|
|
1065
|
+
* @returns Promise,解析为值
|
|
1066
|
+
*/
|
|
1067
|
+
$get$async(key: K, defval?: V | ((key: K) => Promise<V>)): Promise<V>;
|
|
1068
|
+
|
|
1069
|
+
/**
|
|
1070
|
+
* 转换为对象
|
|
1071
|
+
* @returns 转换后的对象
|
|
1072
|
+
*/
|
|
1073
|
+
toObject(): Record<string, V>;
|
|
1074
|
+
|
|
1075
|
+
/**
|
|
1076
|
+
* 转换为数组
|
|
1077
|
+
* @returns 转换后的数组
|
|
1078
|
+
*/
|
|
1079
|
+
toArray(): [K, V][];
|
|
1080
|
+
|
|
1081
|
+
/**
|
|
1082
|
+
* 转换为 JSON 格式
|
|
1083
|
+
* @returns 转换后的数组
|
|
1084
|
+
*/
|
|
1085
|
+
toJSON(): [K, V][];
|
|
1086
|
+
|
|
1087
|
+
/**
|
|
1088
|
+
* 获取值,如果不存在则插入默认值
|
|
1089
|
+
* @param key 键
|
|
1090
|
+
* @param defval 默认值
|
|
1091
|
+
* @returns 值
|
|
1092
|
+
*/
|
|
1093
|
+
getOrInsert(key: K, defval?: V): V;
|
|
1094
|
+
|
|
1095
|
+
/**
|
|
1096
|
+
* 获取值,如果不存在则计算并插入
|
|
1097
|
+
* @param key 键
|
|
1098
|
+
* @param callback 计算函数
|
|
1099
|
+
* @returns 值
|
|
1100
|
+
*/
|
|
1101
|
+
getOrInsertComputed(key: K, callback: (key: K) => V): V;
|
|
1102
|
+
}
|
|
1103
|
+
|
|
1104
|
+
/**
|
|
1105
|
+
* Set 构造函数扩展
|
|
1106
|
+
*/
|
|
1107
|
+
interface SetConstructor {
|
|
1108
|
+
/**
|
|
1109
|
+
* 创建一个新的 Set 实例
|
|
1110
|
+
*/
|
|
1111
|
+
new<T>(): Set<T>;
|
|
1112
|
+
|
|
1113
|
+
/**
|
|
1114
|
+
* 通过迭代器创建一个新的 Set 实例
|
|
1115
|
+
* @param iterator 迭代器
|
|
1116
|
+
*/
|
|
1117
|
+
new<T>(iterator: Iterator<T, T, T>): Set<T>;
|
|
1118
|
+
}
|
|
1119
|
+
|
|
1120
|
+
/**
|
|
1121
|
+
* Set 实例扩展
|
|
1122
|
+
*/
|
|
1123
|
+
interface Set<T> {
|
|
1124
|
+
/**
|
|
1125
|
+
* 获取 Set 的大小
|
|
1126
|
+
* @returns Set 的大小
|
|
1127
|
+
*/
|
|
1128
|
+
$length(): number;
|
|
1129
|
+
|
|
1130
|
+
/**
|
|
1131
|
+
* 获取 Set 的键值对迭代器
|
|
1132
|
+
* @returns 键值对迭代器
|
|
1133
|
+
*/
|
|
1134
|
+
$entries(): IterableIterator<[T, T]>;
|
|
1135
|
+
|
|
1136
|
+
/**
|
|
1137
|
+
* 获取 Set 的键迭代器
|
|
1138
|
+
* @returns 键迭代器
|
|
1139
|
+
*/
|
|
1140
|
+
$keys(): IterableIterator<T>;
|
|
1141
|
+
|
|
1142
|
+
/**
|
|
1143
|
+
* 获取 Set 的值迭代器
|
|
1144
|
+
* @returns 值迭代器
|
|
1145
|
+
*/
|
|
1146
|
+
$values(): IterableIterator<T>;
|
|
1147
|
+
|
|
1148
|
+
/**
|
|
1149
|
+
* 添加元素, 并返回当前Map
|
|
1150
|
+
* @param value 值
|
|
1151
|
+
* @returns Set 实例
|
|
1152
|
+
*/
|
|
1153
|
+
$add(value: T): Set<T>;
|
|
1154
|
+
|
|
1155
|
+
/**
|
|
1156
|
+
* 删除元素, 并返回当前Map
|
|
1157
|
+
* @param value 值
|
|
1158
|
+
* @returns Set 实例
|
|
1159
|
+
*/
|
|
1160
|
+
$delete(value: T): Set<T>;
|
|
1161
|
+
|
|
1162
|
+
/**
|
|
1163
|
+
* 添加元素并返回元素数组
|
|
1164
|
+
* @param value 值
|
|
1165
|
+
* @returns 元素数组
|
|
1166
|
+
*/
|
|
1167
|
+
$adda(value: T): [T];
|
|
1168
|
+
|
|
1169
|
+
/**
|
|
1170
|
+
* 删除元素并返回元素数组
|
|
1171
|
+
* @param value 值
|
|
1172
|
+
* @returns 元素数组
|
|
1173
|
+
*/
|
|
1174
|
+
$deletea(value: T): [T];
|
|
1175
|
+
|
|
1176
|
+
/**
|
|
1177
|
+
* 添加元素并返回元素
|
|
1178
|
+
* @param value 值
|
|
1179
|
+
* @returns 元素
|
|
1180
|
+
*/
|
|
1181
|
+
$add0(value: T): T;
|
|
1182
|
+
|
|
1183
|
+
/**
|
|
1184
|
+
* 删除元素并返回元素
|
|
1185
|
+
* @param value 值
|
|
1186
|
+
* @returns 元素
|
|
1187
|
+
*/
|
|
1188
|
+
$delete0(value: T): T;
|
|
1189
|
+
|
|
1190
|
+
/**
|
|
1191
|
+
* 计算两个 Set 的并集
|
|
1192
|
+
* @param s 另一个 Set
|
|
1193
|
+
* @returns 并集 Set
|
|
1194
|
+
*/
|
|
1195
|
+
$union(s: Set<T>): Set<T>;
|
|
1196
|
+
|
|
1197
|
+
/**
|
|
1198
|
+
* 计算两个 Set 的交集
|
|
1199
|
+
* @param s 另一个 Set
|
|
1200
|
+
* @returns 交集 Set
|
|
1201
|
+
*/
|
|
1202
|
+
$intersection(s: Set<T>): Set<T>;
|
|
1203
|
+
|
|
1204
|
+
/**
|
|
1205
|
+
* 计算两个 Set 的差集
|
|
1206
|
+
* @param s 另一个 Set
|
|
1207
|
+
* @returns 差集 Set
|
|
1208
|
+
*/
|
|
1209
|
+
$difference(s: Set<T>): Set<T>;
|
|
1210
|
+
|
|
1211
|
+
/**
|
|
1212
|
+
* 计算两个 Set 的对称差集
|
|
1213
|
+
* @param s 另一个 Set
|
|
1214
|
+
* @returns 对称差集 Set
|
|
1215
|
+
*/
|
|
1216
|
+
$symmetricDifference(s: Set<T>): Set<T>;
|
|
1217
|
+
|
|
1218
|
+
/**
|
|
1219
|
+
* 转换为数组
|
|
1220
|
+
* @returns 转换后的数组
|
|
1221
|
+
*/
|
|
1222
|
+
toArray(): T[];
|
|
1223
|
+
|
|
1224
|
+
/**
|
|
1225
|
+
* 转换为 JSON 格式
|
|
1226
|
+
* @returns 转换后的数组
|
|
1227
|
+
*/
|
|
1228
|
+
toJSON(): T[];
|
|
1229
|
+
}
|
|
1230
|
+
|
|
1231
|
+
/**
|
|
1232
|
+
* Date 构造函数扩展
|
|
1233
|
+
*/
|
|
1234
|
+
interface DateConstructor {
|
|
1235
|
+
/**
|
|
1236
|
+
* 创建一个新的 Date 实例
|
|
1237
|
+
* @param args 构造参数
|
|
1238
|
+
*/
|
|
1239
|
+
new(...args: any[]): Date;
|
|
1240
|
+
|
|
1241
|
+
/**
|
|
1242
|
+
* 格式化当前日期
|
|
1243
|
+
* @param format 格式字符串
|
|
1244
|
+
* @returns 格式化后的字符串
|
|
1245
|
+
*/
|
|
1246
|
+
format(format?: string): string;
|
|
1247
|
+
|
|
1248
|
+
/**
|
|
1249
|
+
* 获取当前时间戳
|
|
1250
|
+
* @returns 时间戳
|
|
1251
|
+
*/
|
|
1252
|
+
unix(): number;
|
|
1253
|
+
|
|
1254
|
+
/**
|
|
1255
|
+
* 从时间戳创建 Date 实例
|
|
1256
|
+
* @param time 时间戳
|
|
1257
|
+
* @returns Date 实例
|
|
1258
|
+
*/
|
|
1259
|
+
fromUnix(time: number): Date;
|
|
1260
|
+
|
|
1261
|
+
/**
|
|
1262
|
+
* 日期计算
|
|
1263
|
+
* @param opts 计算选项
|
|
1264
|
+
* @returns 计算后的 Date 实例
|
|
1265
|
+
*/
|
|
1266
|
+
expr(opts: { y?: number; m?: number; d?: number; h?: number; i?: number; s?: number }): Date;
|
|
1267
|
+
|
|
1268
|
+
/**
|
|
1269
|
+
* 获取当天的时间范围
|
|
1270
|
+
* @returns 时间范围数组 [开始时间戳, 结束时间戳]
|
|
1271
|
+
*/
|
|
1272
|
+
toDayRange(): [number, number];
|
|
1273
|
+
|
|
1274
|
+
/**
|
|
1275
|
+
* 获取当周的时间范围
|
|
1276
|
+
* @returns 时间范围数组 [开始时间戳, 结束时间戳]
|
|
1277
|
+
*/
|
|
1278
|
+
toWeekRange(): [number, number];
|
|
1279
|
+
|
|
1280
|
+
/**
|
|
1281
|
+
* 获取当月的时间范围
|
|
1282
|
+
* @returns 时间范围数组 [开始时间戳, 结束时间戳]
|
|
1283
|
+
*/
|
|
1284
|
+
toMonthRange(): [number, number];
|
|
1285
|
+
|
|
1286
|
+
/**
|
|
1287
|
+
* 获取当年的时间范围
|
|
1288
|
+
* @returns 时间范围数组 [开始时间戳, 结束时间戳]
|
|
1289
|
+
*/
|
|
1290
|
+
toYearRange(): [number, number];
|
|
1291
|
+
}
|
|
1292
|
+
|
|
1293
|
+
/**
|
|
1294
|
+
* Date 实例扩展
|
|
1295
|
+
*/
|
|
1296
|
+
interface Date {
|
|
1297
|
+
/**
|
|
1298
|
+
* 格式化日期
|
|
1299
|
+
* @param format 格式字符串
|
|
1300
|
+
* @returns 格式化后的字符串
|
|
1301
|
+
*/
|
|
1302
|
+
format(format?: string): string;
|
|
1303
|
+
|
|
1304
|
+
/**
|
|
1305
|
+
* 获取时间戳
|
|
1306
|
+
* @returns 时间戳
|
|
1307
|
+
*/
|
|
1308
|
+
unix(): number;
|
|
1309
|
+
|
|
1310
|
+
/**
|
|
1311
|
+
* 检查是否是闰年
|
|
1312
|
+
* @returns 如果是闰年返回 true,否则返回 false
|
|
1313
|
+
*/
|
|
1314
|
+
isLeapYear(): boolean;
|
|
1315
|
+
|
|
1316
|
+
/**
|
|
1317
|
+
* 获取月份中的天数
|
|
1318
|
+
* @returns 月份中的天数
|
|
1319
|
+
*/
|
|
1320
|
+
getMonthDay(): number;
|
|
1321
|
+
|
|
1322
|
+
/**
|
|
1323
|
+
* 日期计算
|
|
1324
|
+
* @param opts 计算选项
|
|
1325
|
+
* @returns 计算后的 Date 实例
|
|
1326
|
+
*/
|
|
1327
|
+
expr(opts?: { y?: number; m?: number; d?: number; h?: number; i?: number; s?: number }): Date;
|
|
1328
|
+
|
|
1329
|
+
/**
|
|
1330
|
+
* 获取开始时间
|
|
1331
|
+
* @param n 时间单位
|
|
1332
|
+
* @returns 开始时间的 Date 实例
|
|
1333
|
+
*/
|
|
1334
|
+
begin(n?: number): Date;
|
|
1335
|
+
|
|
1336
|
+
/**
|
|
1337
|
+
* 获取结束时间
|
|
1338
|
+
* @param n 时间单位
|
|
1339
|
+
* @returns 结束时间的 Date 实例
|
|
1340
|
+
*/
|
|
1341
|
+
end(n?: number): Date;
|
|
1342
|
+
|
|
1343
|
+
/**
|
|
1344
|
+
* 获取指定周的日期
|
|
1345
|
+
* @param n 周数
|
|
1346
|
+
* @param dir 方向
|
|
1347
|
+
* @returns 计算后的 Date 实例
|
|
1348
|
+
*/
|
|
1349
|
+
week(n?: number, dir?: number): Date;
|
|
1350
|
+
|
|
1351
|
+
/**
|
|
1352
|
+
* 转换为 JSON 格式
|
|
1353
|
+
* @returns 转换后的字符串
|
|
1354
|
+
*/
|
|
1355
|
+
toJSON(): string;
|
|
1356
|
+
}
|
|
1357
|
+
|
|
1358
|
+
/**
|
|
1359
|
+
* RegExp 实例扩展
|
|
1360
|
+
*/
|
|
1361
|
+
interface RegExp {
|
|
1362
|
+
/**
|
|
1363
|
+
* 转换为 JSON 格式
|
|
1364
|
+
* @returns 转换后的字符串
|
|
1365
|
+
*/
|
|
1366
|
+
toJSON(): string;
|
|
1367
|
+
}
|
|
1368
|
+
|
|
1369
|
+
/**
|
|
1370
|
+
* Promise 构造函数扩展
|
|
1371
|
+
*/
|
|
1372
|
+
interface PromiseConstructor {
|
|
1373
|
+
/**
|
|
1374
|
+
* 创建一个通道,包含 Promise、resolve 和 reject 函数
|
|
1375
|
+
* @returns 通道数组 [Promise, resolve, reject]
|
|
1376
|
+
*/
|
|
1377
|
+
$channel(): [Promise<any>, (value: any) => void, (reason: any) => void];
|
|
1378
|
+
|
|
1379
|
+
/**
|
|
1380
|
+
* 创建一个带有解析器的 Promise
|
|
1381
|
+
* @returns 包含 promise、resolve 和 reject 的对象
|
|
1382
|
+
*/
|
|
1383
|
+
$withResolvers(): { promise: Promise<any>; resolve: (value: any) => void; reject: (reason: any) => void; };
|
|
1384
|
+
}
|
|
1385
|
+
|
|
1386
|
+
/**
|
|
1387
|
+
* Promise 实例扩展
|
|
1388
|
+
*/
|
|
1389
|
+
interface Promise<T> {
|
|
1390
|
+
/**
|
|
1391
|
+
* 尝试执行并捕获错误
|
|
1392
|
+
* @returns Promise,解析为 [结果, null] 或 [null, 错误]
|
|
1393
|
+
*/
|
|
1394
|
+
tryCatch(): Promise<[T, null] | [null, any]>;
|
|
1395
|
+
}
|
|
1396
|
+
|
|
1397
|
+
/**
|
|
1398
|
+
* JSON 扩展
|
|
1399
|
+
*/
|
|
1400
|
+
interface JSON {
|
|
1401
|
+
/**
|
|
1402
|
+
* 解析 JSON 字符串
|
|
1403
|
+
* @param v 要解析的值
|
|
1404
|
+
* @param defval 默认值
|
|
1405
|
+
* @returns 解析后的对象或默认值
|
|
1406
|
+
*/
|
|
1407
|
+
$parse(v: any, defval?: any): any;
|
|
1408
|
+
}
|
|
1409
|
+
|
|
1410
|
+
/**
|
|
1411
|
+
* Iterator 扩展
|
|
1412
|
+
*/
|
|
1413
|
+
interface Iterator<T> {
|
|
1414
|
+
/**
|
|
1415
|
+
* 转换为数组
|
|
1416
|
+
* @returns 转换后的数组
|
|
1417
|
+
*/
|
|
1418
|
+
toArray(): T[];
|
|
1419
|
+
}
|
|
1420
|
+
|
|
1421
|
+
/**
|
|
1422
|
+
* ArrayBuffer 扩展
|
|
1423
|
+
*/
|
|
1424
|
+
interface ArrayBuffer {
|
|
1425
|
+
/**
|
|
1426
|
+
* 转换为 Uint8Array
|
|
1427
|
+
* @returns 转换后的 Uint8Array
|
|
1428
|
+
*/
|
|
1429
|
+
toUint8Array(): Uint8Array;
|
|
1430
|
+
}
|
|
1431
|
+
|
|
1432
|
+
/**
|
|
1433
|
+
* Uint8Array 构造函数扩展
|
|
1434
|
+
*/
|
|
1435
|
+
interface Uint8ArrayConstructor {
|
|
1436
|
+
/**
|
|
1437
|
+
* 创建一个新的 Uint8Array 实例
|
|
1438
|
+
*/
|
|
1439
|
+
new(): Uint8Array;
|
|
1440
|
+
|
|
1441
|
+
/**
|
|
1442
|
+
* 通过长度创建一个新的 Uint8Array 实例
|
|
1443
|
+
* @param length 长度
|
|
1444
|
+
*/
|
|
1445
|
+
new(length: number): Uint8Array;
|
|
1446
|
+
|
|
1447
|
+
/**
|
|
1448
|
+
* 从字符串创建 Uint8Array
|
|
1449
|
+
* @param str 字符串
|
|
1450
|
+
* @returns 创建的 Uint8Array
|
|
1451
|
+
*/
|
|
1452
|
+
fromString(str: string): Uint8Array;
|
|
1453
|
+
|
|
1454
|
+
/**
|
|
1455
|
+
* 从十六进制字符串创建 Uint8Array
|
|
1456
|
+
* @param str 十六进制字符串
|
|
1457
|
+
* @returns 创建的 Uint8Array
|
|
1458
|
+
*/
|
|
1459
|
+
$fromHex(str: string): Uint8Array;
|
|
1460
|
+
|
|
1461
|
+
/**
|
|
1462
|
+
* 从 Base64 字符串创建 Uint8Array
|
|
1463
|
+
* @param str Base64 字符串
|
|
1464
|
+
* @returns 创建的 Uint8Array
|
|
1465
|
+
*/
|
|
1466
|
+
$fromBase64(str: string): Uint8Array;
|
|
1467
|
+
}
|
|
1468
|
+
|
|
1469
|
+
/**
|
|
1470
|
+
* Uint8Array 实例扩展
|
|
1471
|
+
*/
|
|
1472
|
+
interface Uint8Array {
|
|
1473
|
+
/**
|
|
1474
|
+
* 从字符串设置值
|
|
1475
|
+
* @param str 字符串
|
|
1476
|
+
* @param targetOffset 目标偏移量
|
|
1477
|
+
* @returns 设置后的对象
|
|
1478
|
+
*/
|
|
1479
|
+
setFromString(str: string, targetOffset?: number): Object;
|
|
1480
|
+
|
|
1481
|
+
/**
|
|
1482
|
+
* 从十六进制字符串设置值
|
|
1483
|
+
* @param str 十六进制字符串
|
|
1484
|
+
* @param targetOffset 目标偏移量
|
|
1485
|
+
* @returns 设置后的对象
|
|
1486
|
+
*/
|
|
1487
|
+
$setFromHex(str: string, targetOffset?: number): Object;
|
|
1488
|
+
|
|
1489
|
+
/**
|
|
1490
|
+
* 从 Base64 字符串设置值
|
|
1491
|
+
* @param str Base64 字符串
|
|
1492
|
+
* @param targetOffset 目标偏移量
|
|
1493
|
+
* @returns 设置后的对象
|
|
1494
|
+
*/
|
|
1495
|
+
$setFromBase64(str: string, targetOffset?: number): Object;
|
|
1496
|
+
|
|
1497
|
+
/**
|
|
1498
|
+
* 转换为字符串
|
|
1499
|
+
* @returns 转换后的字符串
|
|
1500
|
+
*/
|
|
1501
|
+
toString(): string;
|
|
1502
|
+
|
|
1503
|
+
/**
|
|
1504
|
+
* 转换为十六进制字符串
|
|
1505
|
+
* @returns 十六进制字符串
|
|
1506
|
+
*/
|
|
1507
|
+
$toHex(): string;
|
|
1508
|
+
|
|
1509
|
+
/**
|
|
1510
|
+
* 转换为 Base64 字符串
|
|
1511
|
+
* @returns Base64 字符串
|
|
1512
|
+
*/
|
|
1513
|
+
$toBase64(): string;
|
|
1514
|
+
|
|
1515
|
+
/**
|
|
1516
|
+
* 转换为数组
|
|
1517
|
+
* @returns 转换后的数组
|
|
1518
|
+
*/
|
|
1519
|
+
toArray(): number[];
|
|
1520
|
+
}
|
|
1521
|
+
|
|
1522
|
+
/**
|
|
1523
|
+
* Math 扩展
|
|
1524
|
+
*/
|
|
1525
|
+
interface Math {
|
|
1526
|
+
/**
|
|
1527
|
+
* 生成随机字符串
|
|
1528
|
+
* @param len 长度
|
|
1529
|
+
* @param slen 特殊字符长度
|
|
1530
|
+
* @param chars 字符集
|
|
1531
|
+
* @param schars 特殊字符集
|
|
1532
|
+
* @returns 随机字符串
|
|
1533
|
+
*/
|
|
1534
|
+
randstr(len?: number, slen?: number, chars?: string, schars?: string): string;
|
|
1535
|
+
|
|
1536
|
+
/**
|
|
1537
|
+
* 生成随机整数
|
|
1538
|
+
* @param min 最小值
|
|
1539
|
+
* @param max 最大值
|
|
1540
|
+
* @returns 随机整数
|
|
1541
|
+
*/
|
|
1542
|
+
randint(min?: number, max?: number): number;
|
|
1543
|
+
|
|
1544
|
+
/**
|
|
1545
|
+
* 生成递增 ID
|
|
1546
|
+
* @returns 递增 ID
|
|
1547
|
+
*/
|
|
1548
|
+
incrid(): number;
|
|
1549
|
+
|
|
1550
|
+
/**
|
|
1551
|
+
* 生成递增字符串
|
|
1552
|
+
* @returns 递增字符串
|
|
1553
|
+
*/
|
|
1554
|
+
incrstr(): string;
|
|
1555
|
+
|
|
1556
|
+
/**
|
|
1557
|
+
* 生成唯一 ID
|
|
1558
|
+
* @param now 时间戳
|
|
1559
|
+
* @returns 唯一 ID
|
|
1560
|
+
*/
|
|
1561
|
+
uniqid(now?: number): number;
|
|
1562
|
+
|
|
1563
|
+
/**
|
|
1564
|
+
* 生成唯一字符串
|
|
1565
|
+
* @returns 唯一字符串
|
|
1566
|
+
*/
|
|
1567
|
+
uniqstr(): string;
|
|
1568
|
+
|
|
1569
|
+
/**
|
|
1570
|
+
* 睡眠指定时间
|
|
1571
|
+
* @param duration 持续时间(毫秒)
|
|
1572
|
+
* @returns Promise
|
|
1573
|
+
*/
|
|
1574
|
+
sleep(duration: number): Promise<void>;
|
|
1575
|
+
|
|
1576
|
+
/**
|
|
1577
|
+
* 使用模板
|
|
1578
|
+
* @param name 模板名称
|
|
1579
|
+
* @returns 模板内容
|
|
1580
|
+
*/
|
|
1581
|
+
useTemplate(name: string): any;
|
|
1582
|
+
}
|
|
1583
|
+
|
|
1584
|
+
/**
|
|
1585
|
+
* LRU 缓存类
|
|
1586
|
+
*/
|
|
1587
|
+
class LRU<K, V> extends Map<K, V> {
|
|
1588
|
+
/**
|
|
1589
|
+
* 构造函数
|
|
1590
|
+
* @param capacity 容量
|
|
1591
|
+
*/
|
|
1592
|
+
constructor(capacity: number);
|
|
1593
|
+
|
|
1594
|
+
/**
|
|
1595
|
+
* 获取值
|
|
1596
|
+
* @param key 键
|
|
1597
|
+
* @returns 值或 undefined
|
|
1598
|
+
*/
|
|
1599
|
+
get(key: K): V | undefined;
|
|
1600
|
+
|
|
1601
|
+
/**
|
|
1602
|
+
* 获取值,如果不存在则插入默认值
|
|
1603
|
+
* @param key 键
|
|
1604
|
+
* @param defval 默认值
|
|
1605
|
+
* @returns 值
|
|
1606
|
+
*/
|
|
1607
|
+
getOrInsert(key: K, defval: V): V;
|
|
1608
|
+
|
|
1609
|
+
/**
|
|
1610
|
+
* 获取值,如果不存在则计算并插入
|
|
1611
|
+
* @param key 键
|
|
1612
|
+
* @param callback 计算函数
|
|
1613
|
+
* @returns 值
|
|
1614
|
+
*/
|
|
1615
|
+
getOrInsertComputed(key: K, callback: (key: K) => V): V;
|
|
1616
|
+
|
|
1617
|
+
/**
|
|
1618
|
+
* 异步获取值,如果不存在则计算并插入
|
|
1619
|
+
* @param key 键
|
|
1620
|
+
* @param callback 异步计算函数
|
|
1621
|
+
* @returns Promise,解析为值
|
|
1622
|
+
*/
|
|
1623
|
+
getOrInsertComputedAsync(key: K, callback: (key: K) => Promise<V>): Promise<V>;
|
|
1624
|
+
|
|
1625
|
+
/**
|
|
1626
|
+
* 设置键值对
|
|
1627
|
+
* @param key 键
|
|
1628
|
+
* @param value 值
|
|
1629
|
+
* @returns LRU 实例
|
|
1630
|
+
*/
|
|
1631
|
+
set(key: K, value: V): this;
|
|
1632
|
+
|
|
1633
|
+
/**
|
|
1634
|
+
* 设置键值对(别名)
|
|
1635
|
+
* @param key 键
|
|
1636
|
+
* @param value 值
|
|
1637
|
+
* @returns LRU 实例
|
|
1638
|
+
*/
|
|
1639
|
+
put(key: K, value: V): this;
|
|
1640
|
+
}
|
|
1641
|
+
|
|
1642
|
+
/**
|
|
1643
|
+
* LRU 构造函数接口
|
|
1644
|
+
*/
|
|
1645
|
+
interface LRUConstructor {
|
|
1646
|
+
/**
|
|
1647
|
+
* 创建一个新的 LRU 实例
|
|
1648
|
+
* @param capacity 容量
|
|
1649
|
+
*/
|
|
1650
|
+
new <K, V>(capacity: number): LRU<K, V>;
|
|
1651
|
+
}
|
|
1652
|
+
}
|
|
1653
|
+
|
|
1654
|
+
export {}
|