From b4a48d57b8e8bc97fb3bb1942c11ad71c9558ca9 Mon Sep 17 00:00:00 2001 From: Jordan Eldredge Date: Mon, 17 Sep 2018 08:32:52 -0700 Subject: [PATCH] Type Emitter --- js/{emitter.js => emitter.ts} | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) rename js/{emitter.js => emitter.ts} (74%) diff --git a/js/emitter.js b/js/emitter.ts similarity index 74% rename from js/emitter.js rename to js/emitter.ts index b28f149f..da7c999c 100644 --- a/js/emitter.js +++ b/js/emitter.ts @@ -1,5 +1,11 @@ export default class Emitter { - on(event, callback) { + _listeners: { [event: string]: Array<(...args: any[]) => void> }; + + constructor() { + this._listeners = {}; + } + + on(event: string, callback: (...args: any[]) => void) { const eventListeners = this._listeners[event] || []; eventListeners.push(callback); this._listeners[event] = eventListeners; @@ -9,14 +15,10 @@ export default class Emitter { return unsubscribe; } - trigger(event, ...args) { + trigger(event: string, ...args: any[]) { const callbacks = this._listeners[event]; if (callbacks) { callbacks.forEach(cb => cb(...args)); } } - - constructor() { - this._listeners = {}; - } }