@@ -107,6 +107,20 @@ export abstract class StrictEventEmitter<
107107 return this ;
108108 }
109109
110+ /**
111+ * Removes the `listener` function as an event listener for `ev`.
112+ *
113+ * @param ev Name of the event
114+ * @param listener Callback function
115+ */
116+ off < Ev extends ReservedOrUserEventNames < ReservedEvents , ListenEvents > > (
117+ ev ?: Ev ,
118+ listener ?: ReservedOrUserListener < ReservedEvents , ListenEvents , Ev >
119+ ) : this {
120+ super . off ( ev as string , listener ) ;
121+ return this ;
122+ }
123+
110124 /**
111125 * Emits an event.
112126 *
@@ -153,4 +167,44 @@ export abstract class StrictEventEmitter<
153167 Ev
154168 > [ ] ;
155169 }
170+
171+ /**
172+ * Returns true if there is a listener for this event.
173+ *
174+ * @param event Event name
175+ * @returns boolean
176+ */
177+ hasListeners <
178+ Ev extends ReservedOrUserEventNames < ReservedEvents , ListenEvents >
179+ > ( event : Ev ) : boolean {
180+ return super . hasListeners ( event as string ) ;
181+ }
182+
183+ /**
184+ * Removes the `listener` function as an event listener for `ev`.
185+ *
186+ * @param ev Name of the event
187+ * @param listener Callback function
188+ */
189+ removeListener <
190+ Ev extends ReservedOrUserEventNames < ReservedEvents , ListenEvents >
191+ > (
192+ ev ?: Ev ,
193+ listener ?: ReservedOrUserListener < ReservedEvents , ListenEvents , Ev >
194+ ) : this {
195+ super . removeListener ( ev as string , listener ) ;
196+ return this ;
197+ }
198+
199+ /**
200+ * Removes all `listener` function as an event listener for `ev`.
201+ *
202+ * @param ev Name of the event
203+ */
204+ removeAllListeners <
205+ Ev extends ReservedOrUserEventNames < ReservedEvents , ListenEvents >
206+ > ( ev ?: Ev ) : this {
207+ super . removeAllListeners ( ev as string ) ;
208+ return this ;
209+ }
156210}
0 commit comments