Skip to content

Commit 930213f

Browse files
committed
document #on params
1 parent f9d25b7 commit 930213f

File tree

3 files changed

+31
-18
lines changed

3 files changed

+31
-18
lines changed

src/Component.ts

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,10 @@ export class Component<T extends HTMLElement = HTMLElement> extends ElementCompo
109109
return this;
110110
}
111111

112-
public override on<K extends keyof HTMLElementEventMap>(type: K, listener: (ev: HTMLElementEventMap[K], component: this) => any, options?: boolean | AddEventListenerOptions) {
113-
return super.on(type as any, listener, options);
112+
public override on<K extends keyof HTMLElementEventMap>(type: K, listener: (ev: HTMLElementEventMap[K], component: this) => any): typeof this;
113+
public override on<K extends keyof HTMLElementEventMap>(type: K, listener: (ev: HTMLElementEventMap[K], component: this) => any, options: AddEventListenerOptions): typeof this;
114+
public override on<K extends keyof HTMLElementEventMap>(type: K, listener: (ev: HTMLElementEventMap[K], component: this) => any, useCapture: boolean): typeof this;
115+
public override on<K extends keyof HTMLElementEventMap>(type: K, listener: (ev: HTMLElementEventMap[K], component: this) => any, c?: boolean | AddEventListenerOptions): typeof this {
116+
return super.on(type as any, listener, c as any);
114117
}
115118
}

src/ElementComponent.ts

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -159,15 +159,11 @@ export abstract class ElementComponent<T extends Element> extends NodeComponent<
159159
return this;
160160
}
161161

162-
/**
163-
* Add event listener
164-
* @param type
165-
* @param listener
166-
* @param options
167-
*/
168-
public override on<K extends keyof ElementEventMap>(type: K, listener: (ev: ElementEventMap[K], component: this) => any, options?: boolean | AddEventListenerOptions) {
169-
this.node.addEventListener(type, e => listener(e, this), options);
170-
return this;
162+
public override on<K extends keyof ElementEventMap>(type: K, listener: (ev: ElementEventMap[K], component: this) => any): typeof this;
163+
public override on<K extends keyof ElementEventMap>(type: K, listener: (ev: ElementEventMap[K], component: this) => any, options: AddEventListenerOptions): typeof this;
164+
public override on<K extends keyof ElementEventMap>(type: K, listener: (ev: ElementEventMap[K], component: this) => any, useCapture: boolean): typeof this;
165+
public override on<K extends keyof ElementEventMap>(type: K, listener: (ev: ElementEventMap[K], component: this) => any, c?: boolean | AddEventListenerOptions): typeof this {
166+
return super.on(type as any, listener, c as any);
171167
}
172168

173169
/**

src/NodeComponent.ts

Lines changed: 21 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -51,12 +51,26 @@ export abstract class NodeComponent<T extends Node> {
5151

5252
/**
5353
* Add event listener
54-
* @param type
55-
* @param listener
56-
* @param options
54+
* @param type A case-sensitive string representing the event type to listen for.
55+
* @param listener The function that is called when an event of the specified type occurs.
5756
*/
58-
public on(type: string, listener: (ev: Event, component: this) => any, options?: boolean | AddEventListenerOptions) {
59-
this.node.addEventListener(type, e => listener(e, this), options);
60-
return this;
61-
}
57+
public on(type: string, listener: (ev: Event, component: this) => any): typeof this;
58+
/**
59+
* Add event listener
60+
* @param type A case-sensitive string representing the event type to listen for.
61+
* @param listener The function that is called when an event of the specified type occurs.
62+
* @param options An object that specifies characteristics about the event listener. See {@link https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener#options `options` on MDN}
63+
*/
64+
public on(type: string, listener: (ev: Event, component: this) => any, options: AddEventListenerOptions): typeof this;
65+
/**
66+
* Add event listener
67+
* @param type A case-sensitive string representing the event type to listen for.
68+
* @param listener The function that is called when an event of the specified type occurs.
69+
* @param useCapture See {@link https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener#usecapture `useCapture` on MDN}
70+
*/
71+
public on(type: string, listener: (ev: Event, component: this) => any, useCapture: boolean): typeof this;
72+
public on(type: string, listener: (ev: Event, component: this) => any, c?: boolean | AddEventListenerOptions) {
73+
this.node.addEventListener(type, e => listener(e, this), c);
74+
return this;
75+
}
6276
}

0 commit comments

Comments
 (0)