diff --git a/types/event-kit/index.d.ts b/types/event-kit/index.d.ts index 2208ffaae3..aa0275d8a8 100644 --- a/types/event-kit/index.d.ts +++ b/types/event-kit/index.d.ts @@ -1,4 +1,4 @@ -// Type definitions for event-kit 2.x +// Type definitions for event-kit 2.4 // Project: https://github.com/atom/event-kit // Definitions by: GlenCFL // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped @@ -69,7 +69,8 @@ export class CompositeDisposable implements DisposableLike { * for handlers registered via ::on to be invoked with calls to ::emit. */ // tslint:disable-next-line:no-any -export class Emitter implements DisposableLike { +export class Emitter + implements DisposableLike { disposed: boolean; /** Construct an emitter. */ @@ -83,31 +84,58 @@ export class Emitter implements DisposableLi // Event Subscription /** Registers a handler to be invoked whenever the given event is emitted. */ - on(eventName: T, handler: (value?: Emissions[T]) => void): - Disposable; + on(eventName: T, handler: (value?: + OptionalEmissions[T]) => void): Disposable; + /** Registers a handler to be invoked whenever the given event is emitted. */ + on(eventName: T, handler: (value: + RequiredEmissions[T]) => void): Disposable; /** * Register the given handler function to be invoked the next time an event * with the given name is emitted via ::emit. */ - once(eventName: T, handler: (value?: Emissions[T]) => void): - Disposable; + once(eventName: T, handler: (value?: + OptionalEmissions[T]) => void): Disposable; + /** + * Register the given handler function to be invoked the next time an event + * with the given name is emitted via ::emit. + */ + once(eventName: T, handler: (value: + RequiredEmissions[T]) => void): Disposable; /** * Register the given handler function to be invoked before all other * handlers existing at the time of subscription whenever events by the * given name are emitted via ::emit. */ - preempt(eventName: T, handler: (value?: Emissions[T]) => void): - Disposable; + preempt(eventName: T, handler: (value?: + OptionalEmissions[T]) => void): Disposable; + /** + * Register the given handler function to be invoked before all other + * handlers existing at the time of subscription whenever events by the + * given name are emitted via ::emit. + */ + preempt(eventName: T, handler: (value: + RequiredEmissions[T]) => void): Disposable; // Event Emission /** Invoke the handlers registered via ::on for the given event name. */ - emit(eventName: T, value?: Emissions[T]): void; + emit(eventName: T, value?: + OptionalEmissions[T]): void; + /** Invoke the handlers registered via ::on for the given event name. */ + emit(eventName: T, value: + RequiredEmissions[T]): void; /** * Asynchronously invoke the handlers registered via ::on for the given event name. * @return A promise that will be fulfilled once all handlers have been invoked. */ - emitAsync(eventName: T, value?: Emissions[T]): Promise; + emitAsync(eventName: T, value?: + OptionalEmissions[T]): Promise; + /** + * Asynchronously invoke the handlers registered via ::on for the given event name. + * @return A promise that will be fulfilled once all handlers have been invoked. + */ + emitAsync(eventName: T, value: + RequiredEmissions[T]): Promise; }