-
Notifications
You must be signed in to change notification settings - Fork 9
Expand file tree
/
Copy pathindex.d.ts
More file actions
162 lines (157 loc) · 5.23 KB
/
index.d.ts
File metadata and controls
162 lines (157 loc) · 5.23 KB
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
/**
* @namespace stringRandom
* @description string-random 命名空间,包含所有类型定义
*/
declare namespace stringRandom {
/**
* 随机字符串生成选项配置
*
* @interface Options
*
* @description
* 控制随机字符串生成的字符集选项。所有选项都是可选的,可以使用布尔值或自定义字符串。
*
* **示例用法:**
* ```typescript
* import stringRandom from 'string-random';
*
* // 使用布尔值
* stringRandom(16, { numbers: false, letters: true, specials: true });
*
* // 使用自定义字符集
* stringRandom(16, {
* numbers: '012345',
* letters: 'abcdef',
* specials: '!@#$%'
* });
*
* // 组合使用
* stringRandom(16, {
* numbers: false, // 不包含数字
* letters: 'ABCDEF', // 仅使用指定字母
* specials: true // 包含所有特殊字符
* });
* ```
*
* **默认字符集:**
* - numbers: "0123456789"
* - letters: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"
* - specials: "~!@#$%^*()_+-=[]{}|;:,./<>?"
*/
interface Options {
/**
* 是否包含数字或自定义数字字符集
*
* - `true` | `undefined`: 使用默认数字集 "0123456789"
* - `false`: 不包含任何数字
* - `string`: 使用自定义的数字字符串,例如 "012345" 或 "2468"
*
* @default true
* @example
* // 使用默认数字
* stringRandom(10, { numbers: true }); // "a3B7x2K9L1"
*
* // 不包含数字
* stringRandom(10, { numbers: false }); // "abcXYZdefGHI"
*
* // 自定义数字(仅偶数)
* stringRandom(10, { numbers: "02468" }); // "a0B2X4d6e8F"
*/
numbers?: string | boolean;
/**
* 是否包含字母或自定义字母字符集
*
* - `true` | `undefined`: 使用默认字母集(大小写英文字母)
* - `false`: 不包含任何字母
* - `string`: 使用自定义的字母字符串,例如 "abcdef" 或 "ABCDEFG"
*
* @default true
* @example
* // 使用默认字母(大小写混合)
* stringRandom(10, { letters: true }); // "aB3cD7xY9L"
*
* // 不包含字母(仅数字)
* stringRandom(10, { letters: false }); // "1234567890"
*
* // 仅大写字母
* stringRandom(10, { letters: "ABCDEFG" }); // "A3B7C2D9E1"
*
* // 仅小写字母
* stringRandom(10, { letters: "abcdef" }); // "a3b7c2d9e1"
*/
letters?: string | boolean;
/**
* 是否包含特殊字符或自定义特殊字符集
*
* - `true`: 使用默认特殊字符集 "~!@#$%^*()_+-=[]{}|;:,./<>?"
* - `false` | `undefined`: 不包含任何特殊字符(默认)
* - `string`: 使用自定义的特殊字符字符串,例如 "!@#$%" 或 ":;"
*
* @default false
* @example
* // 包含默认特殊字符
* stringRandom(10, { specials: true }); // "aB3!cD7@xY9"
*
* // 仅使用标点符号
* stringRandom(10, { specials: ":;.,?!" }); // "a:B3;cD.7xY"
*
* // 仅使用符号字符(不包含字母数字)
* stringRandom(10, { specials: true, numbers: false, letters: false }); // "!@#$%^&*()_"
*/
specials?: string | boolean;
}
}
/**
* 生成随机字符串
*
* @function stringRandom
* @description
* 生成指定长度的随机字符串,支持自定义字符集和字符类型控制。
*
* @param {number} [length=8] - 随机字符串的长度,默认为 8,最大支持4096
* @param {stringRandom.Options | string | true} [options={}] - 配置选项
*
* @returns {string} 生成的随机字符串
*
* @example
* ```typescript
* // 基础用法
* stringRandom(); // "aB3cD7xY" (默认长度 8,包含数字和字母)
* stringRandom(16); // "aB3cD7xY9L2mN4oP"
*
* // 使用 Options 对象
* stringRandom(16, { numbers: false }); // "aBcDeFgHiJkLmNoP" (仅字母)
* stringRandom(16, { letters: false }); // "1234567890123456" (仅数字)
* stringRandom(16, { specials: true }); // "aB3!cD7@xY9#L2$" (包含特殊字符)
*
* // 自定义字符集
* stringRandom(16, { letters: "ABCDEF" }); // "A3B7C2D9E1F4G8H"
* stringRandom(16, { numbers: "01234" }); // "a0B1c2D3e4F5g6H"
* stringRandom(16, { specials: "!@#$%" }); // "aB3!cD7@xY9#$L2"
*
* // 快捷方式:options=true 等同于 {specials: true}
* stringRandom(16, true); // "aB3!cD7@xY9#L2$mN4%"
*
* // 使用自定义字符集字符串
* stringRandom(10, "ABCDEFG0123456789"); // "A3B7C2D9E1"
* stringRandom(10, "0123456789"); // "1234567890"
*
* // 复杂组合
* stringRandom(20, {
* numbers: false,
* letters: "abcdefgh",
* specials: "!@#$%"
* }); // "a!b@c#d$e%f!g@h#$"
*
* // 特殊场景:仅特殊字符
* stringRandom(10, { specials: true, numbers: false, letters: false }); // "!@#$%^&*()_"
*
* // 特殊场景:自定义仅特殊字符
* stringRandom(10, { specials: ":;,", numbers: false, letters: false }); // ":;:;:;:;:;"
* ```
*/
declare function stringRandom(
length?: number,
options?: stringRandom.Options | string | true,
): string;
export = stringRandom;