-
Notifications
You must be signed in to change notification settings - Fork 7
/
Copy pathindex.d.ts
347 lines (329 loc) · 9.49 KB
/
index.d.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
export interface Deferred {
resolve: (value?: any) => any;
reject: (reason?: any) => void;
promise: Promise<any>;
}
type wordMap = Map<string, recursiveMap | boolean>;
interface recursiveMap extends wordMap {}
export namespace AwesomeRegx {
/**
* @description 匹配手机号码
*/
export const phoneNumber: RegExp;
/**
* @description 匹配Emoji字符
*/
export const isEmoji: RegExp;
/**
* @description 隐私手机号,会将手机号的中间四位数替换成*
*/
export const privacyMobile: (mobile: string) => string;
/**
* @description 姓名脱敏,将除第一个字之外的非空字符替换为*
*/
export const privacyName: (name: string) => string;
/**
* @description 匹配中文字符和全角字符
*/
export const chineseAndfullWidthChar: RegExp;
/**
* @description 将http链接去掉,保持和Host一致,防止有的图片展示不了
*/
export const https: (url: string) => string;
/**
* @description 简单的匹配身份证号
*/
export const simpleIdentityNo: RegExp;
/**
* @description 匹配中文名字
*/
export const chineseName: RegExp;
/**
* @description 匹配某个字符出现多次的情况,支持[A-Za-z0-9_]
*/
export const alphaOccurMoreThanOneTime: RegExp;
/**
* 匹配任意字符出现多次的情况,支持所有的字符除了换行符(newline)
*/
export const anyCharOccurMoreThanOneTime: RegExp;
/**
* @description 匹配正整数
*/
export const positiveInteger: RegExp;
/**
* @description 匹配整数
*/
export const integer: RegExp;
/**
* @description 匹配负整数
*/
export const negativeInteger: RegExp;
/**
* @description 匹配非负整数
*/
export const nonnegativeInteger: RegExp;
/**
* @description 匹配非正整数
*/
export const nonPostiveInterger: RegExp;
/**
* @description 匹配正浮点数
*/
export const postiveFloat: RegExp;
/**
* @description 匹配负浮点数
*/
export const negativeFloat: RegExp;
/**
* @description 匹配浮点数
*/
export const float: RegExp;
/**
* @description 匹配非负浮点数
*/
export const nonNegativeFloat: RegExp;
/**
* @description 匹配非正浮点数
*/
export const nonPositiveFloat: RegExp;
/**
* @description 匹配英文26个字母
*/
export const alphabat: RegExp;
/**
* @description 匹配大写的英文字母
*/
export const upperAlpha: RegExp;
/**
* @description 匹配小写的英文字母
*/
export const lowerAlpha: RegExp;
/**
* @description 匹配英文字母和数字加下划线
*/
export const alphaNumWithUnderline: RegExp;
/**
* @description 匹配双字节字符
*/
export const DBC: RegExp;
/**
* @description 匹配空行
*/
export const emptyLine: RegExp;
/**
* @description 匹配首部或者尾部有空白字符的字符串
*/
export const emptyCharInStartAndEnd: RegExp;
/**
* @description 匹配中文字符
*/
export const chinese: RegExp;
/**
* @description 匹配邮箱
*/
export const email: RegExp;
/**
* @description 匹配url
*/
export const url: RegExp;
/**
* @description 匹配ip地址
*/
export const ip: RegExp;
/**
* @description 匹配电话座机
*/
export const telPhone: RegExp;
/**
* @description 匹配邮政编码
*/
export const postalCode: RegExp;
}
export namespace AwesomeHelp {
/**
* @description 根据对象的某些字段的值对数组对象进行分类
* @param list 需要分类的数组对象(必须是一个数组)
* @param fields 需要分类的字段(必须传递一个函数, 支持多个字段)
*/
export function groupBySomeFields<T>(
list: T[],
fields: (item: T) => any[]
): T[][];
/**
* @description 对Date的扩展,将 Date 转化为指定格式的String
* @param date 需要转换格式的日期
* @param format 日期转换的最后格式,比如YYYY-MM-DD
*/
export function convertDate(date: Date, format: string): string;
/**
* @description 浮点数相加
*/
export function addFloat(arg1: number, arg2: number): number;
/**
* @description 浮点数相减
*/
export function minusFloat(arg1: number, arg2: number): number;
/**
* @description 浮点数相除
*/
export function divFloat(arg1: number, arg2: number): number;
/**
* @description 浮点数相乘
*/
export function timesFloat(arg1: number, arg2: number): number;
export function makeDeferred(): Deferred;
/**
* @description 判断是否是生成器
*/
export function isGenerator(obj: any): boolean;
/**
* @description 判断是否是生成器函数
*/
export function isGeneratorFunction(obj: any): boolean;
/**
* @description 判断是否是Promise
*/
export function isPromise(obj: any): boolean;
/**
* @description 千分法计数
*/
export function toThousands(num: number): string;
/**
* 隐藏所有的数字位除了指定的某一位,比如需要转换100000的所有0为?,那么就要这样调用hiddenNumberExpectSpecified(100000, 0, '?') => 1?????
* @param num 需要操作的数字
* @param expected 不想被隐藏的位数,从左边最高index开始算起,默认是最高位也就是0
* @param hiddenStr 希望隐藏的数字转换成哪个字符,默认是?
*/
export function hiddenNumberExpectSpecified(
num: number,
expected: number,
hiddenStr: string
): string;
/**
* 将所有的敏感词汇组成一个嵌套的Map结构,使用的是DFA数据结构算法
* @param sensitiveWordList
*/
export function makeSensitiveMap(sensitiveWordList: string[]): wordMap;
/**
* 检查搜寻的文本是否含有敏感词汇
* @param txt 需要查找敏感词的文本
* @param sensitiveWordsMap 敏感词汇的Map结构,允许自定义,如果自定义需要使用上面的函数makeSensitiveMap去生成,如果没有传,默认使用自带的敏感词库
* @param isQuickSearch 是否需要快速查询,默认是false,如果是的话查找到值是返回true,反之是false
*/
export function checkSensitiveWord(
txt: string,
isQuickSearch?: null,
sensitiveWordsMap?: wordMap
): Map<string, { location: number }[]>;
export function checkSensitiveWord(
txt: string,
isQuickSearch: boolean,
sensitiveWordsMap?: wordMap
): boolean;
/**
* 将小数进行格式化,最少保留1位小数,最多保留的小数位可以传值指定,
* 比如keepLeastOneDecimal(5.101, 2) => 5.1,(5.00, 2) => 5.0,(5.10163, 3) => 5.101
* @param value 需要格式化的值
* @param mostDecimal 最多保留的小数位
*/
export function keepLeastOneDecimal(
value: string,
mostDecimal: number
): string;
/**
* 根据paddingLength指定的位数,将val前面补齐对应的0
* @param val
* @param paddingLength
*/
export function prefixPadding(
val: string | number,
length: number,
paddingStr?: string
): string;
/**
* 反扁平对象,{'a.b.c': 111 } => { a: {b: { c: 111}}}
* @param obj 被操作的对象
* @param splitChar 分割字符,默认是 "."
*/
export function unflattenObject(
obj: { [key: string]: any },
splitChar?: string
): { [key: string]: any };
/**
* 扁平化对象,{ a: {b: { c: 111}}} => {'a.b.c': 111 }
* @param obj 被操作的对象
* @param splitChar 分割字符,默认是 "."
*/
export function flattenObject(
obj: { [key: string]: any },
splitChar?: string
): { [key: string]: any };
}
export namespace AwesomeMath {
export class Region {
constructor(points: number[][]);
/**
* @description 计算多边形的中间点的坐标(经纬度)
*/
public centroid: () => { x: number; y: number };
/**
* @description 简单的匹配身份证号
*/
private area: () => number;
}
/**
* @description 计算两点之间的直线距离
* @param {number} lng1 起点纬度
* @param {number} lat1 起点纬度
* @param {number} lng2 终点纬度
* @param {number} lat2 终点纬度
* @returns {number} 两点之间的直线距离,单位:米
*/
export function getDistance(
lng1: number,
lat1: number,
lng2: number,
lat2: number
): number;
/**
* 转换经度或者纬度为地图可识别的格式
* @param origin
*/
export function decodeLatLng(origin: number): number;
/**
*
* @param origin 转换经度或者纬度为整数格式
*/
export function encodeLatLng(origin: number): number;
}
export namespace AwesomeHttp {
/**
* @description 更新url中query请求的某个参数,可以配合replaceState去更新浏览器的历史记录
* @param baseUrl 需要更新的url
* @param key 需要更新的key
* @param value 更新的新值
*/
export function updateQueryStringParam(
baseUrl: string,
key: string,
value: any
): string;
/**
* @description 根据指定的key值从query string中查找对应的value,如果找不到返回null
* @param fullUrl 完整的url,包括host部分
* @param key 需要查找的key
*/
export function getQueryStringParam(
fullUrl: string,
key: string
): string | null;
/**
* @description 将query string按照键值对的形式返回object
* @param fullUrl 完整的url
*/
export function parseQueryString2Object(fullUrl: string): object;
/**
* @description 解析queryObject后组合一起追加到path后面
*/
export function queryObject2String(path: string, queryObject: object): string;
}