Skip to content

Commit 6e99698

Browse files
authored
Merge pull request #193 from webdeveric/dev
Added types for DOM event names
2 parents 5ddf7e3 + c796ac8 commit 6e99698

3 files changed

Lines changed: 23 additions & 1 deletion

File tree

src/types/dom-events.ts

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
import type { KeysWhere } from './utils.js';
2+
3+
export type AnimationEventName = KeysWhere<DocumentEventMap, AnimationEvent>;
4+
export type ClipboardEventName = KeysWhere<DocumentEventMap, ClipboardEvent>;
5+
export type CompositionEventName = KeysWhere<DocumentEventMap, CompositionEvent>;
6+
export type DragEventName = KeysWhere<DocumentEventMap, DragEvent>;
7+
export type ErrorEventName = KeysWhere<DocumentEventMap, ErrorEvent>;
8+
export type EventName = KeysWhere<DocumentEventMap, Event>;
9+
export type FocusEventName = KeysWhere<DocumentEventMap, FocusEvent>;
10+
export type FormDataEventName = KeysWhere<DocumentEventMap, FormDataEvent>;
11+
export type InputEventName = KeysWhere<DocumentEventMap, InputEvent>;
12+
export type KeyboardEventName = KeysWhere<DocumentEventMap, KeyboardEvent>;
13+
export type MouseEventName = KeysWhere<DocumentEventMap, MouseEvent>;
14+
export type PointerEventName = KeysWhere<DocumentEventMap, PointerEvent>;
15+
export type ProgressEventName = KeysWhere<DocumentEventMap, ProgressEvent>;
16+
export type SecurityPolicyViolationEventName = KeysWhere<DocumentEventMap, SecurityPolicyViolationEvent>;
17+
export type SubmitEventName = KeysWhere<DocumentEventMap, SubmitEvent>;
18+
export type TouchEventName = KeysWhere<DocumentEventMap, TouchEvent>;
19+
export type TransitionEventName = KeysWhere<DocumentEventMap, TransitionEvent>;
20+
export type UIEventName = KeysWhere<DocumentEventMap, UIEvent>;
21+
export type WheelEventName = KeysWhere<DocumentEventMap, WheelEvent>;

src/types/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ export * from './arrays.js';
22
export * from './branded.js';
33
export * from './common.js';
44
export * from './date-time.js';
5+
export * from './dom-events.js';
56
export * from './functions.js';
67
export * from './numbers.js';
78
export * from './objects.js';

src/types/utils.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ export type RemoveNever<Type> = {
8484
* Return a list of keys where the property value match the `DataType`.
8585
*/
8686
export type KeysWhere<Type, DataType, Key extends keyof Type = keyof Type> = Key extends PropertyKey
87-
? DataType extends Type[Key]
87+
? Type[Key] extends DataType
8888
? Key
8989
: never
9090
: never;

0 commit comments

Comments
 (0)