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 = {}; - } }