@bettergi/types 0.1.6 → 0.1.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (29) hide show
  1. package/LICENSE +21 -0
  2. package/index.d.ts +3 -0
  3. package/objects/keyMouseHook.d.ts +70 -0
  4. package/package.json +5 -2
  5. package/types/BetterGenshinImpact/GameTask/AutoDomain/AutoDomainTask.d.ts +3 -2
  6. package/types/BetterGenshinImpact/GameTask/AutoFight/AutoFightTask.d.ts +3 -2
  7. package/types/BetterGenshinImpact/GameTask/Model/Area/Converter/INodeConverter.d.ts +8 -1
  8. package/types/BetterGenshinImpact/GameTask/Model/Area/Region.d.ts +3 -2
  9. package/types/BetterGenshinImpact/Helpers/User32Helper.d.ts +178 -178
  10. package/types/System/Collections/IEqualityComparer.d.ts +11 -0
  11. package/types/System/Collections/IStructuralComparable.d.ts +11 -0
  12. package/types/System/Collections/IStructuralEquatable.d.ts +13 -0
  13. package/types/System/DateTime.d.ts +1 -0
  14. package/types/System/DateTimeOffset.d.ts +1 -0
  15. package/types/System/Exception.d.ts +1 -0
  16. package/types/System/IAsyncDisposable.d.ts +1 -0
  17. package/types/System/IComparable.d.ts +9 -0
  18. package/types/System/IEquatable.d.ts +1 -0
  19. package/types/System/Runtime/CompilerServices/ITuple.d.ts +11 -0
  20. package/types/System/Threading/CancellationToken.d.ts +1 -0
  21. package/types/System/Threading/CancellationTokenRegistration.d.ts +1 -0
  22. package/types/System/Threading/CancellationTokenSource.d.ts +1 -0
  23. package/types/System/Threading/ITimer.d.ts +1 -0
  24. package/types/System/Threading/Tasks/ValueTask.d.ts +1 -0
  25. package/types/System/Threading/WaitHandle.d.ts +1 -0
  26. package/types/System/TimeProvider.d.ts +1 -0
  27. package/types/System/TimeSpan.d.ts +1 -0
  28. package/types/System/Tuple.d.ts +184 -0
  29. package/types/System/Windows/Forms/Keys.d.ts +200 -0
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 Bread Grocery
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/index.d.ts CHANGED
@@ -19,6 +19,9 @@
19
19
  // 消息通知
20
20
  /// <reference path="./objects/notification.d.ts" />
21
21
 
22
+ // 键鼠回调
23
+ /// <reference path="./objects/keyMouseHook.d.ts" />
24
+
22
25
  // 任务调用
23
26
  /// <reference path="./objects/dispatcher.d.ts" />
24
27
 
@@ -0,0 +1,70 @@
1
+ import { type KeyCodeString, type KeyDataString } from "../types/System/Windows/Forms/Keys";
2
+
3
+ type MouseButton = "Left" | "Right" | "Middle" | "XButton1" | "XButton2";
4
+
5
+ declare global {
6
+ /** @since 0.55.0 */
7
+ namespace keyMouseHook {
8
+ /**
9
+ * 注册键盘按下事件回调
10
+ * @param callback 回调函数
11
+ * @param useCodeOnly 是否仅返回 KeyCode,否则返回 KeyData(默认为 true)
12
+ * @since 0.55.0
13
+ */
14
+ function onKeyDown(callback: (keyCode: KeyCodeString) => void, useCodeOnly?: true): void;
15
+ // overload
16
+ function onKeyDown(callback: (keyData: KeyDataString) => void, useCodeOnly: false): void;
17
+
18
+ /**
19
+ * 注册键盘释放事件回调
20
+ * @param callback 回调函数
21
+ * @param useCodeOnly 是否仅返回 KeyCode,否则返回 KeyData(默认为 true)
22
+ * @since 0.55.0
23
+ */
24
+ function onKeyUp(callback: (keyCode: KeyCodeString) => void, useCodeOnly?: true): void;
25
+ // overload
26
+ function onKeyUp(callback: (keyData: KeyDataString) => void, useCodeOnly: false): void;
27
+
28
+ /**
29
+ * 注册鼠标移动事件回调
30
+ * @param callback 回调函数
31
+ * @since 0.55.0
32
+ */
33
+ function onMouseDown(callback: (button: MouseButton) => void): void;
34
+
35
+ /**
36
+ * 注册鼠标释放事件回调
37
+ * @param callback 回调函数
38
+ * @since 0.55.0
39
+ */
40
+ function onMouseUp(callback: (keyCode: MouseButton) => void): void;
41
+
42
+ /**
43
+ * 注册鼠标移动事件回调
44
+ * @param callback 回调函数
45
+ * @param interval 回调节流间隔(单位:毫秒,默认值:200)
46
+ */
47
+ function onMouseMove(callback: (x: number, y: number) => void, interval: number = 200): void;
48
+
49
+ /**
50
+ * 注册鼠标滚轮事件回调
51
+ * @param callback 回调函数
52
+ * @since 0.55.0
53
+ */
54
+ function onMouseWheel(callback: (delta: number, x: number, y: number) => void): void;
55
+
56
+ /**
57
+ * 清空回调列表
58
+ * @since 0.55.0
59
+ */
60
+ function removeAllListeners(): void;
61
+
62
+ /**
63
+ * 取消所有注册键鼠事件回调
64
+ * @since 0.55.0
65
+ */
66
+ function dispose(): void;
67
+ }
68
+ }
69
+
70
+ export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bettergi/types",
3
- "version": "0.1.6",
3
+ "version": "0.1.8",
4
4
  "description": "BetterGI TypeScript 类型定义",
5
5
  "type": "module",
6
6
  "author": "Bread Grocery<https://github.com/breadgrocery>",
@@ -21,5 +21,8 @@
21
21
  ],
22
22
  "dependencies": {
23
23
  "mirada": "^0.0.15"
24
+ },
25
+ "scripts": {
26
+ "release": "pnpm publish --access public"
24
27
  }
25
- }
28
+ }
@@ -1,5 +1,6 @@
1
1
  import "../../../System/Collections/Generic/List";
2
2
  import "../../../System/Threading/CancellationToken";
3
+ import "../../../System/Tuple";
3
4
  import "../../GameTask/Model/Area/ImageRegion";
4
5
  import "../../GameTask/Model/Area/Region";
5
6
  import "../ISoloTask";
@@ -20,7 +21,7 @@ declare global {
20
21
  static pressUseResin(
21
22
  ra: BetterGenshinImpact.GameTask.Model.Area.ImageRegion,
22
23
  resinName: string
23
- ): [boolean, number];
24
+ ): System.Tuple2<boolean, number>;
24
25
 
25
26
  /**
26
27
  * 点击使用树脂
@@ -30,7 +31,7 @@ declare global {
30
31
  static pressUseResin(
31
32
  regionList: System.Collections.Generic.List<BetterGenshinImpact.GameTask.Model.Area.Region>,
32
33
  resinName: string
33
- ): [boolean, number];
34
+ ): System.Tuple2<boolean, number>;
34
35
 
35
36
  constructor(taskParam: BetterGenshinImpact.GameTask.AutoDomain.AutoDomainParam);
36
37
  }
@@ -1,5 +1,6 @@
1
1
  import "../../../System/Collections/Generic/List";
2
2
  import "../../../System/Threading/CancellationToken";
3
+ import "../../../System/Tuple";
3
4
  import "../../GameTask/Model/Area/ImageRegion";
4
5
  import "../../GameTask/Model/Area/Region";
5
6
  import "../ISoloTask";
@@ -20,7 +21,7 @@ declare global {
20
21
  static pressUseResin(
21
22
  ra: BetterGenshinImpact.GameTask.Model.Area.ImageRegion,
22
23
  resinName: string
23
- ): [boolean, number];
24
+ ): System.Tuple2<boolean, number>;
24
25
 
25
26
  /**
26
27
  * 点击使用树脂
@@ -30,7 +31,7 @@ declare global {
30
31
  static pressUseResin(
31
32
  regionList: System.Collections.Generic.List<BetterGenshinImpact.GameTask.Model.Area.Region>,
32
33
  resinName: string
33
- ): [boolean, number];
34
+ ): System.Tuple2<boolean, number>;
34
35
 
35
36
  constructor(taskParam: BetterGenshinImpact.GameTask.AutoFight.AutoFightParam);
36
37
  }
@@ -1,7 +1,14 @@
1
+ import "../../../../../System/Tuple";
2
+
1
3
  declare global {
2
4
  namespace BetterGenshinImpact.GameTask.Model.Area.Converter {
3
5
  interface INodeConverter {
4
- toPrev(x: number, y: number, w: number, h: number): [number, number, number, number];
6
+ toPrev(
7
+ x: number,
8
+ y: number,
9
+ w: number,
10
+ h: number
11
+ ): System.Tuple4<number, number, number, number>;
5
12
  }
6
13
  }
7
14
  }
@@ -1,6 +1,7 @@
1
1
  import { Rect } from "mirada/dist/src/types/opencv";
2
2
  import "../../../../System/Drawing/Pen";
3
3
  import "../../../../System/IDisposable";
4
+ import "../../../../System/Tuple";
4
5
  import "../../../GameTask/Model/Area/Converter/INodeConverter";
5
6
  import "../../../GameTask/Model/Area/ImageRegion";
6
7
  import "../../../View/Drawable/LineDrawable";
@@ -165,10 +166,10 @@ declare global {
165
166
  convertPositionToGameCaptureRegion(x: number, y: number, w: number, h: number): Rect;
166
167
 
167
168
  /** 将指定区域的截图转换成位置元组 */
168
- convertPositionToGameCaptureRegion(x: number, y: number): [number, number];
169
+ convertPositionToGameCaptureRegion(x: number, y: number): System.Tuple2<number, number>;
169
170
 
170
171
  /** 将指定桌面区域的截图转换成位置元组 */
171
- convertPositionToDesktopRegion(x: number, y: number): [number, number];
172
+ convertPositionToDesktopRegion(x: number, y: number): System.Tuple2<number, number>;
172
173
 
173
174
  /** 生成一个新的矩形类型的区域 */
174
175
  toRect(): Rect;
@@ -1,137 +1,137 @@
1
1
  export type Key =
2
2
  | "LBUTTON" // 鼠标左键
3
3
  | "RBUTTON" // 鼠标右键
4
- | "CANCEL" // 取消键(通常用于中断操作)
5
- | "MBUTTON" // 鼠标中键(三键鼠标)
6
- | "XBUTTON1" // 鼠标 X1 键(侧键)
7
- | "XBUTTON2" // 鼠标 X2 键(侧键)
8
- | "BACK" // 退格键(Backspace)
9
- | "TAB" // 制表键(Tab)
10
- | "CLEAR" // 清除键(例如小键盘的“5”)
11
- | "RETURN" // 回车键(Enter)
12
- | "SHIFT" // Shift 键(不区分左右)
13
- | "LSHIFT" // Shift
14
- | "RSHIFT" // Shift
15
- | "CONTROL" // Ctrl 键(不区分左右)
16
- | "LCONTROL" // Ctrl
17
- | "RCONTROL" // Ctrl
18
- | "MENU" // Alt 键(不区分左右)
19
- | "LMENU" // Alt
20
- | "RMENU" // Alt
21
- | "PAUSE" // 暂停键(Pause)
22
- | "CAPITAL" // 大写锁定键(Caps Lock)
23
- | "KANA" // 日文输入法假名模式
24
- | "HANGUL" // 韩文输入法 Hangul 模式
25
- | "HANGUEL" // 韩文输入法 Hanguel 模式(同 Hangul)
4
+ | "CANCEL" // 取消/中断键
5
+ | "MBUTTON" // 鼠标中键
6
+ | "XBUTTON1" // 鼠标侧键1(前进键)
7
+ | "XBUTTON2" // 鼠标侧键2(后退键)
8
+ | "BACK" // 退格键
9
+ | "TAB" // 制表键
10
+ | "CLEAR" // 清除键
11
+ | "RETURN" // 回车键
12
+ | "SHIFT" // Shift键(不区分左右)
13
+ | "LSHIFT" // 左侧Shift键
14
+ | "RSHIFT" // 右侧Shift键
15
+ | "CONTROL" // Ctrl键(不区分左右)
16
+ | "LCONTROL" // 左侧Ctrl键
17
+ | "RCONTROL" // 右侧Ctrl键
18
+ | "MENU" // Alt键(不区分左右)
19
+ | "LMENU" // 左侧Alt键
20
+ | "RMENU" // 右侧Alt键
21
+ | "PAUSE" // 暂停键
22
+ | "CAPITAL" // 大写锁定键
23
+ | "KANA" // 日文假名输入模式
24
+ | "HANGUL" // 韩文Hangul输入模式
25
+ | "HANGUEL" // 韩文Hanguel输入模式(同Hangul)
26
26
  | "IME_ON" // 输入法开启状态
27
- | "JUNJA" // 韩文输入法 Junja 模式
28
- | "FINAL" // 输入法最终模式(韩文)
29
- | "HANJA" // 韩文输入法 Hanja 模式
30
- | "KANJI" // 日文输入法汉字模式
27
+ | "JUNJA" // 韩文Junja输入模式
28
+ | "FINAL" // 输入法最终模式
29
+ | "HANJA" // 韩文汉字输入模式
30
+ | "KANJI" // 日文汉字输入模式
31
31
  | "IME_OFF" // 输入法关闭状态
32
- | "ESCAPE" // Esc
33
- | "CONVERT" // 输入法转换键(日文/中文)
34
- | "NONCONVERT" // 输入法不转换键(日文/中文)
35
- | "ACCEPT" // 输入法接受操作
36
- | "MODECHANGE" // 输入法模式切换
32
+ | "ESCAPE" // Esc键
33
+ | "CONVERT" // 输入法转换键
34
+ | "NONCONVERT" // 输入法非转换键
35
+ | "ACCEPT" // 输入法接受键
36
+ | "MODECHANGE" // 输入法模式切换键
37
37
  | "SPACE" // 空格键
38
- | "PRIOR" // Page Up
39
- | "NEXT" // Page Down
40
- | "END" // End
41
- | "HOME" // Home
42
- | "UP" // 上方向键
43
- | "DOWN" // 下方向键
44
- | "LEFT" // 左方向键
45
- | "RIGHT" // 右方向键
46
- | "SELECT" // Select 键(旧键盘)
47
- | "PRINT" // 打印屏幕键(Print Screen)
48
- | "EXECUTE" // 执行键(旧键盘)
49
- | "SNAPSHOT" // 截屏键(同 Print Screen
50
- | "INSERT" // Insert
51
- | "DELETE" // Delete
52
- | "HELP" // 帮助键(旧键盘)
53
- | "0" // 数字 0
54
- | "1" // 数字 1
55
- | "2" // 数字 2
56
- | "3" // 数字 3
57
- | "4" // 数字 4
58
- | "5" // 数字 5
59
- | "6" // 数字 6
60
- | "7" // 数字 7
61
- | "8" // 数字 8
62
- | "9" // 数字 9
63
- | "A" // 字母 A
64
- | "B" // 字母 B
65
- | "C" // 字母 C
66
- | "D" // 字母 D
67
- | "E" // 字母 E
68
- | "F" // 字母 F
69
- | "G" // 字母 G
70
- | "H" // 字母 H
71
- | "I" // 字母 I
72
- | "J" // 字母 J
73
- | "K" // 字母 K
74
- | "L" // 字母 L
75
- | "M" // 字母 M
76
- | "N" // 字母 N
77
- | "O" // 字母 O
78
- | "P" // 字母 P
79
- | "Q" // 字母 Q
80
- | "R" // 字母 R
81
- | "S" // 字母 S
82
- | "T" // 字母 T
83
- | "U" // 字母 U
84
- | "V" // 字母 V
85
- | "W" // 字母 W
86
- | "X" // 字母 X
87
- | "Y" // 字母 Y
88
- | "Z" // 字母 Z
89
- | "LWIN" // Windows
90
- | "RWIN" // Windows
38
+ | "PRIOR" // Page Up键
39
+ | "NEXT" // Page Down键
40
+ | "END" // End键
41
+ | "HOME" // Home键
42
+ | "UP" // 向上方向键
43
+ | "DOWN" // 向下方向键
44
+ | "LEFT" // 向左方向键
45
+ | "RIGHT" // 向右方向键
46
+ | "SELECT" // 选择键
47
+ | "PRINT" // 打印键
48
+ | "EXECUTE" // 执行键
49
+ | "SNAPSHOT" // 截图键(同Print)
50
+ | "INSERT" // Insert键
51
+ | "DELETE" // Delete键
52
+ | "HELP" // 帮助键
53
+ | "0" // 主键盘数字0键
54
+ | "1" // 主键盘数字1键
55
+ | "2" // 主键盘数字2键
56
+ | "3" // 主键盘数字3键
57
+ | "4" // 主键盘数字4键
58
+ | "5" // 主键盘数字5键
59
+ | "6" // 主键盘数字6键
60
+ | "7" // 主键盘数字7键
61
+ | "8" // 主键盘数字8键
62
+ | "9" // 主键盘数字9键
63
+ | "A" // A键
64
+ | "B" // B键
65
+ | "C" // C键
66
+ | "D" // D键
67
+ | "E" // E键
68
+ | "F" // F键
69
+ | "G" // G键
70
+ | "H" // H键
71
+ | "I" // I键
72
+ | "J" // J键
73
+ | "K" // K键
74
+ | "L" // L键
75
+ | "M" // M键
76
+ | "N" // N键
77
+ | "O" // O键
78
+ | "P" // P键
79
+ | "Q" // Q键
80
+ | "R" // R键
81
+ | "S" // S键
82
+ | "T" // T键
83
+ | "U" // U键
84
+ | "V" // V键
85
+ | "W" // W键
86
+ | "X" // X键
87
+ | "Y" // Y键
88
+ | "Z" // Z键
89
+ | "LWIN" // 左侧Windows徽标键
90
+ | "RWIN" // 右侧Windows徽标键
91
91
  | "APPS" // 应用程序键(右键菜单键)
92
- | "SLEEP" // 计算机睡眠键
93
- | "NUMPAD0" // 小键盘 0
94
- | "NUMPAD1" // 小键盘 1
95
- | "NUMPAD2" // 小键盘 2
96
- | "NUMPAD3" // 小键盘 3
97
- | "NUMPAD4" // 小键盘 4
98
- | "NUMPAD5" // 小键盘 5
99
- | "NUMPAD6" // 小键盘 6
100
- | "NUMPAD7" // 小键盘 7
101
- | "NUMPAD8" // 小键盘 8
102
- | "NUMPAD9" // 小键盘 9
92
+ | "SLEEP" // 休眠键
93
+ | "NUMPAD0" // 小键盘数字0键
94
+ | "NUMPAD1" // 小键盘数字1键
95
+ | "NUMPAD2" // 小键盘数字2键
96
+ | "NUMPAD3" // 小键盘数字3键
97
+ | "NUMPAD4" // 小键盘数字4键
98
+ | "NUMPAD5" // 小键盘数字5键
99
+ | "NUMPAD6" // 小键盘数字6键
100
+ | "NUMPAD7" // 小键盘数字7键
101
+ | "NUMPAD8" // 小键盘数字8键
102
+ | "NUMPAD9" // 小键盘数字9键
103
103
  | "MULTIPLY" // 小键盘乘号键(*)
104
104
  | "ADD" // 小键盘加号键(+)
105
- | "SEPARATOR" // 分隔符键(特定键盘)
105
+ | "SEPARATOR" // 分隔符键
106
106
  | "SUBTRACT" // 小键盘减号键(-)
107
107
  | "DECIMAL" // 小键盘小数点键(.)
108
108
  | "DIVIDE" // 小键盘除号键(/)
109
- | "F1" // 功能键 F1
110
- | "F2" // 功能键 F2
111
- | "F3" // 功能键 F3
112
- | "F4" // 功能键 F4
113
- | "F5" // 功能键 F5
114
- | "F6" // 功能键 F6
115
- | "F7" // 功能键 F7
116
- | "F8" // 功能键 F8
117
- | "F9" // 功能键 F9
118
- | "F10" // 功能键 F10
119
- | "F11" // 功能键 F11
120
- | "F12" // 功能键 F12
121
- | "F13" // 功能键 F13(部分键盘)
122
- | "F14" // 功能键 F14(部分键盘)
123
- | "F15" // 功能键 F15(部分键盘)
124
- | "F16" // 功能键 F16(部分键盘)
125
- | "F17" // 功能键 F17(部分键盘)
126
- | "F18" // 功能键 F18(部分键盘)
127
- | "F19" // 功能键 F19(部分键盘)
128
- | "F20" // 功能键 F20(部分键盘)
129
- | "F21" // 功能键 F21(部分键盘)
130
- | "F22" // 功能键 F22(部分键盘)
131
- | "F23" // 功能键 F23(部分键盘)
132
- | "F24" // 功能键 F24(部分键盘)
133
- | "NUMLOCK" // 数字锁定键(Num Lock)
134
- | "SCROLL" // 滚动锁定键(Scroll Lock)
109
+ | "F1" // F1功能键
110
+ | "F2" // F2功能键
111
+ | "F3" // F3功能键
112
+ | "F4" // F4功能键
113
+ | "F5" // F5功能键
114
+ | "F6" // F6功能键
115
+ | "F7" // F7功能键
116
+ | "F8" // F8功能键
117
+ | "F9" // F9功能键
118
+ | "F10" // F10功能键
119
+ | "F11" // F11功能键
120
+ | "F12" // F12功能键
121
+ | "F13" // F13功能键
122
+ | "F14" // F14功能键
123
+ | "F15" // F15功能键
124
+ | "F16" // F16功能键
125
+ | "F17" // F17功能键
126
+ | "F18" // F18功能键
127
+ | "F19" // F19功能键
128
+ | "F20" // F20功能键
129
+ | "F21" // F21功能键
130
+ | "F22" // F22功能键
131
+ | "F23" // F23功能键
132
+ | "F24" // F24功能键
133
+ | "NUMLOCK" // 数字锁定键
134
+ | "SCROLL" // 滚动锁定键
135
135
  | "BROWSER_BACK" // 浏览器后退键
136
136
  | "BROWSER_FORWARD" // 浏览器前进键
137
137
  | "BROWSER_REFRESH" // 浏览器刷新键
@@ -140,53 +140,53 @@ export type Key =
140
140
  | "BROWSER_FAVORITES" // 浏览器收藏夹键
141
141
  | "BROWSER_HOME" // 浏览器主页键
142
142
  | "VOLUME_MUTE" // 音量静音键
143
- | "VOLUME_DOWN" // 音量减小键
144
- | "VOLUME_UP" // 音量增大键
145
- | "MEDIA_NEXT_TRACK" // 下一曲目键
146
- | "MEDIA_PREV_TRACK" // 上一曲目键
143
+ | "VOLUME_DOWN" // 音量降低键
144
+ | "VOLUME_UP" // 音量提高键
145
+ | "MEDIA_NEXT_TRACK" // 媒体下一曲键
146
+ | "MEDIA_PREV_TRACK" // 媒体上一曲键
147
147
  | "MEDIA_STOP" // 媒体停止键
148
- | "MEDIA_PLAY_PAUSE" // 播放/暂停键
149
- | "LAUNCH_MAIL" // 启动邮件程序键
150
- | "LAUNCH_MEDIA_SELECT" // 启动媒体选择器键
148
+ | "MEDIA_PLAY_PAUSE" // 媒体播放/暂停键
149
+ | "LAUNCH_MAIL" // 启动邮件客户端键
150
+ | "LAUNCH_MEDIA_SELECT" // 选择媒体键
151
151
  | "LAUNCH_APP1" // 启动应用程序1键
152
152
  | "LAUNCH_APP2" // 启动应用程序2键
153
- | "OEM_1" // 分号/冒号键(; :,因键盘布局而异)
154
- | "OEM_PLUS" // 加号键(+,因键盘布局而异)
155
- | "OEM_COMMA" // 逗号键(,,因键盘布局而异)
156
- | "OEM_MINUS" // 减号键(-,因键盘布局而异)
157
- | "OEM_PERIOD" // 句号键(.,因键盘布局而异)
158
- | "OEM_2" // 问号键(?,因键盘布局而异)
159
- | "OEM_3" // 波浪号键(` ~,因键盘布局而异)
160
- | "OEM_4" // 左方括号键([ {,因键盘布局而异)
161
- | "OEM_5" // 反斜杠键(\ |,因键盘布局而异)
162
- | "OEM_6" // 右方括号键(] },因键盘布局而异)
163
- | "OEM_7" // 引号键(' ",因键盘布局而异)
164
- | "OEM_8" // 杂项字符键(因键盘布局而异)
165
- | "OEM_NEC_EQUAL" // NEC 小键盘等号键(=)
166
- | "OEM_FJ_JISHO" // 富士通日语输入法“辞书”键
167
- | "OEM_FJ_MASSHOU" // 富士通日语输入法“未登録”键
168
- | "OEM_FJ_TOUROKU" // 富士通日语输入法“登録”键
169
- | "OEM_FJ_LOYA" // 富士通日语输入法左 Oyayubi
170
- | "OEM_FJ_ROYA" // 富士通日语输入法右 Oyayubi
171
- | "OEM_AX" // AX 键(日语键盘)
172
- | "OEM_102" // 反斜杠/尖括号键(\ > <,某些欧洲键盘)
173
- | "OEM_RESET" // OEM 重置键(Nokia/Ericsson 定义)
174
- | "OEM_JUMP" // OEM 跳转键(Nokia/Ericsson 定义)
175
- | "OEM_PA1" // OEM PA1 键(Nokia/Ericsson 定义)
176
- | "OEM_PA2" // OEM PA2 键(Nokia/Ericsson 定义)
177
- | "OEM_PA3" // OEM PA3 键(Nokia/Ericsson 定义)
178
- | "OEM_WSCTRL" // OEM WSCTRL 键(Nokia/Ericsson 定义)
179
- | "OEM_CUSEL" // OEM CUSEL 键(Nokia/Ericsson 定义)
180
- | "OEM_ATTN" // OEM ATTN 键(Nokia/Ericsson 定义)
181
- | "OEM_FINISH" // OEM FINISH 键(Nokia/Ericsson 定义)
182
- | "OEM_COPY" // OEM COPY 键(Nokia/Ericsson 定义)
183
- | "OEM_AUTO" // OEM AUTO 键(Nokia/Ericsson 定义)
184
- | "OEM_ENLW" // OEM ENLW 键(Nokia/Ericsson 定义)
185
- | "OEM_BACKTAB" // OEM BackTab 键(Nokia/Ericsson 定义)
186
- | "GAMEPAD_A" // 游戏手柄 A
187
- | "GAMEPAD_B" // 游戏手柄 B
188
- | "GAMEPAD_X" // 游戏手柄 X
189
- | "GAMEPAD_Y" // 游戏手柄 Y
153
+ | "OEM_1" // OEM分号键(;)
154
+ | "OEM_PLUS" // OEM加号键(+)
155
+ | "OEM_COMMA" // OEM逗号键(,)
156
+ | "OEM_MINUS" // OEM减号键(-)
157
+ | "OEM_PERIOD" // OEM句号键(.)
158
+ | "OEM_2" // OEM问号键(?)
159
+ | "OEM_3" // OEM波浪线键(~)
160
+ | "OEM_4" // OEM左方括号键([
161
+ | "OEM_5" // OEM竖线键(|)
162
+ | "OEM_6" // OEM右方括号键(]
163
+ | "OEM_7" // OEM引号键('
164
+ | "OEM_8" // OEM键8
165
+ | "OEM_NEC_EQUAL" // NEC等号键(小键盘)
166
+ | "OEM_FJ_JISHO" // 富士通"辞书"键
167
+ | "OEM_FJ_MASSHOU" // 富士通"未登録"键
168
+ | "OEM_FJ_TOUROKU" // 富士通"登録"键
169
+ | "OEM_FJ_LOYA" // 富士通左Oyayubi键
170
+ | "OEM_FJ_ROYA" // 富士通右Oyayubi键
171
+ | "OEM_AX" // AX键(日语键盘)
172
+ | "OEM_102" // OEM102键(通常为\或|,根据键盘布局)
173
+ | "OEM_RESET" // OEM重置键(Nokia/Ericsson定义)
174
+ | "OEM_JUMP" // OEM跳转键(Nokia/Ericsson定义)
175
+ | "OEM_PA1" // OEM PA1键(Nokia/Ericsson定义)
176
+ | "OEM_PA2" // OEM PA2键(Nokia/Ericsson定义)
177
+ | "OEM_PA3" // OEM PA3键(Nokia/Ericsson定义)
178
+ | "OEM_WSCTRL" // OEM WSCTRL键(Nokia/Ericsson定义)
179
+ | "OEM_CUSEL" // OEM CUSEL键(Nokia/Ericsson定义)
180
+ | "OEM_ATTN" // OEM ATTN键(Nokia/Ericsson定义)
181
+ | "OEM_FINISH" // OEM FINISH键(Nokia/Ericsson定义)
182
+ | "OEM_COPY" // OEM COPY键(Nokia/Ericsson定义)
183
+ | "OEM_AUTO" // OEM AUTO键(Nokia/Ericsson定义)
184
+ | "OEM_ENLW" // OEM ENLW键(Nokia/Ericsson定义)
185
+ | "OEM_BACKTAB" // OEM BackTab键(Nokia/Ericsson定义)
186
+ | "GAMEPAD_A" // 游戏手柄A键
187
+ | "GAMEPAD_B" // 游戏手柄B键
188
+ | "GAMEPAD_X" // 游戏手柄X键
189
+ | "GAMEPAD_Y" // 游戏手柄Y键
190
190
  | "GAMEPAD_LEFT_SHOULDER" // 游戏手柄左肩键
191
191
  | "GAMEPAD_RIGHT_SHOULDER" // 游戏手柄右肩键
192
192
  | "GAMEPAD_LEFT_TRIGGER" // 游戏手柄左扳机键
@@ -207,18 +207,18 @@ export type Key =
207
207
  | "GAMEPAD_RIGHT_THUMBSTICK_DOWN" // 游戏手柄右摇杆下推
208
208
  | "GAMEPAD_RIGHT_THUMBSTICK_LEFT" // 游戏手柄右摇杆左推
209
209
  | "GAMEPAD_RIGHT_THUMBSTICK_RIGHT" // 游戏手柄右摇杆右推
210
- | "PROCESSKEY" // IME 处理键(用于输入法处理)
211
- | "ICO_CLEAR" // ICO 清除键(旧键盘)
212
- | "PACKET" // Unicode 字符输入键(用于发送 Unicode 字符)
213
- | "ATTN" // Attn 键(旧系统)
214
- | "CRSEL" // 光标选择键(旧系统)
215
- | "EXSEL" // 扩展选择键(旧系统)
216
- | "EREOF" // Erase EOF 键(旧系统)
217
- | "PLAY" // 播放键(旧系统)
218
- | "ZOOM" // 缩放键(旧系统)
219
- | "NONAME" // 保留键(未命名)
220
- | "PA1" // PA1 键(旧系统)
221
- | "OEM_CLEAR"; // 清除键(旧键盘)
210
+ | "PROCESSKEY" // IME处理键
211
+ | "ICO_CLEAR" // ICO清除键
212
+ | "PACKET" // 数据包键(用于Unicode字符输入)
213
+ | "ATTN" // 注意键
214
+ | "CRSEL" // 光标选择键
215
+ | "EXSEL" // 扩展选择键
216
+ | "EREOF" // 删除至文件末尾键
217
+ | "PLAY" // 播放键
218
+ | "ZOOM" // 缩放键
219
+ | "NONAME" // 未命名键(保留供未来使用)
220
+ | "PA1" // PA1
221
+ | "OEM_CLEAR"; // OEM清除键
222
222
 
223
223
  export type KeyCode =
224
224
  | Uppercase<Key>
@@ -0,0 +1,11 @@
1
+ declare global {
2
+ namespace System.Collections {
3
+ interface IEqualityComparer {
4
+ equals(x: any, y: any): boolean;
5
+
6
+ getHashCode(obj: any): number;
7
+ }
8
+ }
9
+ }
10
+
11
+ export {};
@@ -0,0 +1,11 @@
1
+ import "./IEqualityComparer";
2
+
3
+ declare global {
4
+ namespace System.Collections {
5
+ interface IStructuralComparable {
6
+ compareTo(other: any, comparer: System.Collections.IEqualityComparer): number;
7
+ }
8
+ }
9
+ }
10
+
11
+ export {};
@@ -0,0 +1,13 @@
1
+ import "./IEqualityComparer";
2
+
3
+ declare global {
4
+ namespace System.Collections {
5
+ interface IStructuralEquatable {
6
+ equals(other: any, comparer: System.Collections.IEqualityComparer): boolean;
7
+
8
+ getHashCode(comparer: System.Collections.IEqualityComparer): number;
9
+ }
10
+ }
11
+ }
12
+
13
+ export {};
@@ -5,4 +5,5 @@ declare global {
5
5
  }
6
6
  }
7
7
  }
8
+
8
9
  export {};
@@ -5,4 +5,5 @@ declare global {
5
5
  }
6
6
  }
7
7
  }
8
+
8
9
  export {};
@@ -5,4 +5,5 @@ declare global {
5
5
  }
6
6
  }
7
7
  }
8
+
8
9
  export {};
@@ -7,4 +7,5 @@ declare global {
7
7
  }
8
8
  }
9
9
  }
10
+
10
11
  export {};
@@ -0,0 +1,9 @@
1
+ declare global {
2
+ namespace System {
3
+ interface IComparable {
4
+ compareTo(other: any): number;
5
+ }
6
+ }
7
+ }
8
+
9
+ export {};
@@ -5,4 +5,5 @@ declare global {
5
5
  }
6
6
  }
7
7
  }
8
+
8
9
  export {};
@@ -0,0 +1,11 @@
1
+ declare global {
2
+ namespace System.Runtime.CompilerServices {
3
+ interface ITuple {
4
+ length: number;
5
+
6
+ [index: number]: any;
7
+ }
8
+ }
9
+ }
10
+
11
+ export {};
@@ -55,4 +55,5 @@ declare global {
55
55
  }
56
56
  export import CancellationToken = System.Threading.CancellationToken;
57
57
  }
58
+
58
59
  export {};
@@ -24,4 +24,5 @@ declare global {
24
24
  }
25
25
  }
26
26
  }
27
+
27
28
  export {};
@@ -48,4 +48,5 @@ declare global {
48
48
  }
49
49
  export import CancellationTokenSource = System.Threading.CancellationTokenSource;
50
50
  }
51
+
51
52
  export {};
@@ -9,4 +9,5 @@ declare global {
9
9
  }
10
10
  }
11
11
  }
12
+
12
13
  export {};
@@ -9,4 +9,5 @@ declare global {
9
9
  }
10
10
  }
11
11
  }
12
+
12
13
  export {};
@@ -5,4 +5,5 @@ declare global {
5
5
  }
6
6
  }
7
7
  }
8
+
8
9
  export {};
@@ -28,4 +28,5 @@ declare global {
28
28
  }
29
29
  }
30
30
  }
31
+
31
32
  export {};
@@ -5,4 +5,5 @@ declare global {
5
5
  }
6
6
  }
7
7
  }
8
+
8
9
  export {};
@@ -0,0 +1,184 @@
1
+ import "./Collections/IStructuralComparable";
2
+ import "./Collections/IStructuralEquatable";
3
+ import "./IComparable";
4
+ import "./Runtime/CompilerServices/ITuple";
5
+
6
+ declare global {
7
+ // TODO: 未实现ITupleInternal接口,待补充(如果有必要)
8
+ namespace System {
9
+ class Tuple1<T1>
10
+ implements
11
+ System.Collections.IStructuralEquatable,
12
+ System.Collections.IStructuralComparable,
13
+ System.IComparable
14
+ {
15
+ item1: T1;
16
+
17
+ constructor(item1: T1);
18
+
19
+ equals(other: any): boolean;
20
+
21
+ compareTo(other: any): number;
22
+
23
+ getHashCode(comparer: System.Collections.IEqualityComparer): number;
24
+ }
25
+
26
+ class Tuple2<T1, T2>
27
+ implements
28
+ System.Collections.IStructuralEquatable,
29
+ System.Collections.IStructuralComparable,
30
+ System.IComparable
31
+ {
32
+ item1: T1;
33
+ item2: T2;
34
+
35
+ constructor(item1: T1, item2: T2);
36
+
37
+ equals(other: any): boolean;
38
+
39
+ compareTo(other: any): number;
40
+
41
+ getHashCode(comparer: System.Collections.IEqualityComparer): number;
42
+ }
43
+
44
+ class Tuple3<T1, T2, T3>
45
+ implements
46
+ System.Collections.IStructuralEquatable,
47
+ System.Collections.IStructuralComparable,
48
+ System.IComparable
49
+ {
50
+ item1: T1;
51
+ item2: T2;
52
+ item3: T3;
53
+
54
+ constructor(item1: T1, item2: T2, item3: T3);
55
+
56
+ equals(other: any): boolean;
57
+
58
+ compareTo(other: any): number;
59
+
60
+ getHashCode(comparer: System.Collections.IEqualityComparer): number;
61
+ }
62
+
63
+ class Tuple4<T1, T2, T3, T4>
64
+ implements
65
+ System.Collections.IStructuralEquatable,
66
+ System.Collections.IStructuralComparable,
67
+ System.IComparable
68
+ {
69
+ item1: T1;
70
+ item2: T2;
71
+ item3: T3;
72
+ item4: T4;
73
+
74
+ constructor(item1: T1, item2: T2, item3: T3, item4: T4);
75
+
76
+ equals(other: any): boolean;
77
+
78
+ compareTo(other: any): number;
79
+
80
+ getHashCode(comparer: System.Collections.IEqualityComparer): number;
81
+ }
82
+
83
+ class Tuple5<T1, T2, T3, T4, T5>
84
+ implements
85
+ System.Collections.IStructuralEquatable,
86
+ System.Collections.IStructuralComparable,
87
+ System.IComparable
88
+ {
89
+ item1: T1;
90
+ item2: T2;
91
+ item3: T3;
92
+ item4: T4;
93
+ item5: T5;
94
+
95
+ constructor(item1: T1, item2: T2, item3: T3, item4: T4, item5: T5);
96
+
97
+ equals(other: any): boolean;
98
+
99
+ compareTo(other: any): number;
100
+
101
+ getHashCode(comparer: System.Collections.IEqualityComparer): number;
102
+ }
103
+
104
+ class Tuple6<T1, T2, T3, T4, T5, T6>
105
+ implements
106
+ System.Collections.IStructuralEquatable,
107
+ System.Collections.IStructuralComparable,
108
+ System.IComparable
109
+ {
110
+ item1: T1;
111
+ item2: T2;
112
+ item3: T3;
113
+ item4: T4;
114
+ item5: T5;
115
+ item6: T6;
116
+
117
+ constructor(item1: T1, item2: T2, item3: T3, item4: T4, item5: T5, item6: T6);
118
+
119
+ equals(other: any): boolean;
120
+
121
+ compareTo(other: any): number;
122
+
123
+ getHashCode(comparer: System.Collections.IEqualityComparer): number;
124
+ }
125
+
126
+ class Tuple7<T1, T2, T3, T4, T5, T6, T7>
127
+ implements
128
+ System.Collections.IStructuralEquatable,
129
+ System.Collections.IStructuralComparable,
130
+ System.IComparable
131
+ {
132
+ item1: T1;
133
+ item2: T2;
134
+ item3: T3;
135
+ item4: T4;
136
+ item5: T5;
137
+ item6: T6;
138
+ item7: T7;
139
+
140
+ constructor(item1: T1, item2: T2, item3: T3, item4: T4, item5: T5, item6: T6, item7: T7);
141
+
142
+ equals(other: any): boolean;
143
+
144
+ compareTo(other: any): number;
145
+
146
+ getHashCode(comparer: System.Collections.IEqualityComparer): number;
147
+ }
148
+
149
+ class Tuple8<T1, T2, T3, T4, T5, T6, T7, T8>
150
+ implements
151
+ System.Collections.IStructuralEquatable,
152
+ System.Collections.IStructuralComparable,
153
+ System.IComparable
154
+ {
155
+ item1: T1;
156
+ item2: T2;
157
+ item3: T3;
158
+ item4: T4;
159
+ item5: T5;
160
+ item6: T6;
161
+ item7: T7;
162
+ item8: T8;
163
+
164
+ constructor(
165
+ item1: T1,
166
+ item2: T2,
167
+ item3: T3,
168
+ item4: T4,
169
+ item5: T5,
170
+ item6: T6,
171
+ item7: T7,
172
+ item8: T8
173
+ );
174
+
175
+ equals(other: any): boolean;
176
+
177
+ compareTo(other: any): number;
178
+
179
+ getHashCode(comparer: System.Collections.IEqualityComparer): number;
180
+ }
181
+ }
182
+ }
183
+
184
+ export {};
@@ -0,0 +1,200 @@
1
+ export type Keys =
2
+ | "LButton" // 鼠标左键
3
+ | "RButton" // 鼠标右键
4
+ | "Cancel" // 取消/中断键
5
+ | "MButton" // 鼠标中键
6
+ | "XButton1" // 鼠标侧键1(前进键)
7
+ | "XButton2" // 鼠标侧键2(后退键)
8
+ | "Back" // 退格键
9
+ | "Tab" // 制表键
10
+ | "LineFeed" // 换行键
11
+ | "Clear" // 清除键
12
+ | "Return" // 回车键
13
+ | "Enter" // 回车键(与Return同义)
14
+ | "ShiftKey" // Shift键
15
+ | "ControlKey" // Ctrl键
16
+ | "Menu" // Alt键(也称为菜单键)
17
+ | "Pause" // 暂停键
18
+ | "Capital" // 大写锁定键
19
+ | "CapsLock" // 大写锁定键(同Capital)
20
+ | "KanaMode" // 日文假名输入模式
21
+ | "HanguelMode" // 韩文Hanguel输入模式(已过时,建议使用HangulMode)
22
+ | "HangulMode" // 韩文Hangul输入模式
23
+ | "JunjaMode" // 韩文Junja输入模式
24
+ | "FinalMode" // 输入法最终模式
25
+ | "HanjaMode" // 韩文汉字输入模式
26
+ | "KanjiMode" // 日文汉字输入模式
27
+ | "Escape" // Esc键
28
+ | "IMEConvert" // IME转换键
29
+ | "IMENonconvert" // IME非转换键
30
+ | "IMEAccept" // IME接受键
31
+ | "IMEAceept" // IME接受键(过时拼写,建议使用IMEAccept)
32
+ | "IMEModeChange" // IME模式切换键
33
+ | "Space" // 空格键
34
+ | "Prior" // Page Up键
35
+ | "PageUp" // Page Up键(同Prior)
36
+ | "Next" // Page Down键
37
+ | "PageDown" // Page Down键(同Next)
38
+ | "End" // End键
39
+ | "Home" // Home键
40
+ | "Left" // 向左箭头键
41
+ | "Up" // 向上箭头键
42
+ | "Right" // 向右箭头键
43
+ | "Down" // 向下箭头键
44
+ | "Select" // 选择键
45
+ | "Print" // 打印键
46
+ | "Execute" // 执行键
47
+ | "Snapshot" // 截图键
48
+ | "PrintScreen" // 打印屏幕键(同Snapshot)
49
+ | "Insert" // Insert键
50
+ | "Delete" // Delete键
51
+ | "Help" // 帮助键
52
+ | "D0" // 主键盘数字0键
53
+ | "D1" // 主键盘数字1键
54
+ | "D2" // 主键盘数字2键
55
+ | "D3" // 主键盘数字3键
56
+ | "D4" // 主键盘数字4键
57
+ | "D5" // 主键盘数字5键
58
+ | "D6" // 主键盘数字6键
59
+ | "D7" // 主键盘数字7键
60
+ | "D8" // 主键盘数字8键
61
+ | "D9" // 主键盘数字9键
62
+ | "A" // A键
63
+ | "B" // B键
64
+ | "C" // C键
65
+ | "D" // D键
66
+ | "E" // E键
67
+ | "F" // F键
68
+ | "G" // G键
69
+ | "H" // H键
70
+ | "I" // I键
71
+ | "J" // J键
72
+ | "K" // K键
73
+ | "L" // L键
74
+ | "M" // M键
75
+ | "N" // N键
76
+ | "O" // O键
77
+ | "P" // P键
78
+ | "Q" // Q键
79
+ | "R" // R键
80
+ | "S" // S键
81
+ | "T" // T键
82
+ | "U" // U键
83
+ | "V" // V键
84
+ | "W" // W键
85
+ | "X" // X键
86
+ | "Y" // Y键
87
+ | "Z" // Z键
88
+ | "LWin" // 左侧Windows徽标键
89
+ | "RWin" // 右侧Windows徽标键
90
+ | "Apps" // 应用程序键(右键菜单键)
91
+ | "Sleep" // 休眠键
92
+ | "NumPad0" // 小键盘数字0键
93
+ | "NumPad1" // 小键盘数字1键
94
+ | "NumPad2" // 小键盘数字2键
95
+ | "NumPad3" // 小键盘数字3键
96
+ | "NumPad4" // 小键盘数字4键
97
+ | "NumPad5" // 小键盘数字5键
98
+ | "NumPad6" // 小键盘数字6键
99
+ | "NumPad7" // 小键盘数字7键
100
+ | "NumPad8" // 小键盘数字8键
101
+ | "NumPad9" // 小键盘数字9键
102
+ | "Multiply" // 小键盘乘号键(*)
103
+ | "Add" // 小键盘加号键(+)
104
+ | "Separator" // 分隔符键
105
+ | "Subtract" // 小键盘减号键(-)
106
+ | "Decimal" // 小键盘小数点键(.)
107
+ | "Divide" // 小键盘除号键(/)
108
+ | "F1" // F1功能键
109
+ | "F2" // F2功能键
110
+ | "F3" // F3功能键
111
+ | "F4" // F4功能键
112
+ | "F5" // F5功能键
113
+ | "F6" // F6功能键
114
+ | "F7" // F7功能键
115
+ | "F8" // F8功能键
116
+ | "F9" // F9功能键
117
+ | "F10" // F10功能键
118
+ | "F11" // F11功能键
119
+ | "F12" // F12功能键
120
+ | "F13" // F13功能键
121
+ | "F14" // F14功能键
122
+ | "F15" // F15功能键
123
+ | "F16" // F16功能键
124
+ | "F17" // F17功能键
125
+ | "F18" // F18功能键
126
+ | "F19" // F19功能键
127
+ | "F20" // F20功能键
128
+ | "F21" // F21功能键
129
+ | "F22" // F22功能键
130
+ | "F23" // F23功能键
131
+ | "F24" // F24功能键
132
+ | "NumLock" // 数字锁定键
133
+ | "Scroll" // 滚动锁定键
134
+ | "LShiftKey" // 左侧Shift键
135
+ | "RShiftKey" // 右侧Shift键
136
+ | "LControlKey" // 左侧Ctrl键
137
+ | "RControlKey" // 右侧Ctrl键
138
+ | "LMenu" // 左侧Alt键
139
+ | "RMenu" // 右侧Alt键
140
+ | "BrowserBack" // 浏览器后退键
141
+ | "BrowserForward" // 浏览器前进键
142
+ | "BrowserRefresh" // 浏览器刷新键
143
+ | "BrowserStop" // 浏览器停止键
144
+ | "BrowserSearch" // 浏览器搜索键
145
+ | "BrowserFavorites" // 浏览器收藏夹键
146
+ | "BrowserHome" // 浏览器主页键
147
+ | "VolumeMute" // 音量静音键
148
+ | "VolumeDown" // 音量降低键
149
+ | "VolumeUp" // 音量提高键
150
+ | "MediaNextTrack" // 媒体下一曲键
151
+ | "MediaPreviousTrack" // 媒体上一曲键
152
+ | "MediaStop" // 媒体停止键
153
+ | "MediaPlayPause" // 媒体播放/暂停键
154
+ | "LaunchMail" // 启动邮件客户端键
155
+ | "SelectMedia" // 选择媒体键
156
+ | "LaunchApplication1" // 启动应用程序1键
157
+ | "LaunchApplication2" // 启动应用程序2键
158
+ | "OemSemicolon" // OEM分号键(;)
159
+ | "Oem1" // OEM键1(同OemSemicolon)
160
+ | "Oemplus" // OEM加号键(+)
161
+ | "Oemcomma" // OEM逗号键(,)
162
+ | "OemMinus" // OEM减号键(-)
163
+ | "OemPeriod" // OEM句号键(.)
164
+ | "OemQuestion" // OEM问号键(?)
165
+ | "Oem2" // OEM键2(同OemQuestion)
166
+ | "Oemtilde" // OEM波浪线键(~)
167
+ | "Oem3" // OEM键3(同Oemtilde)
168
+ | "OemOpenBrackets" // OEM左方括号键([)
169
+ | "Oem4" // OEM键4(同OemOpenBrackets)
170
+ | "OemPipe" // OEM竖线键(|)
171
+ | "Oem5" // OEM键5(同OemPipe)
172
+ | "OemCloseBrackets" // OEM右方括号键(])
173
+ | "Oem6" // OEM键6(同OemCloseBrackets)
174
+ | "OemQuotes" // OEM引号键(')
175
+ | "Oem7" // OEM键7(同OemQuotes)
176
+ | "Oem8" // OEM键8
177
+ | "OemBackslash" // OEM反斜杠键(\)
178
+ | "Oem102" // OEM102键(通常为\或|,根据键盘布局)
179
+ | "ProcessKey" // 处理键
180
+ | "Packet" // 数据包键(用于Unicode字符输入)
181
+ | "Attn" // 注意键
182
+ | "Crsel" // 光标选择键
183
+ | "Exsel" // 扩展选择键
184
+ | "EraseEof" // 删除至文件末尾键
185
+ | "Play" // 播放键
186
+ | "Zoom" // 缩放键
187
+ | "NoName" // 未命名键(保留供未来使用)
188
+ | "Pa1" // PA1键
189
+ | "OemClear" // OEM清除键
190
+ | "Shift" // Shift修饰键
191
+ | "Control" // Ctrl修饰键
192
+ | "Alt"; // Alt修饰键
193
+
194
+ export type KeyCodeString = Keys;
195
+
196
+ /**
197
+ * 组合键的字符串表示是逆序的,即 "A, Control" 表示 "Control + A"。
198
+ * 为了在类型安全性和性能之间取得平衡,这里仅支持最多两个按键的组合,超过两个按键的组合将回退到通用的字符串类型。
199
+ */
200
+ export type KeyDataString = Keys | `${Keys}, ${Keys}` | (string & {});