aboutsummaryrefslogtreecommitdiff
path: root/src/index.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/index.ts')
-rw-r--r--src/index.ts8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/index.ts b/src/index.ts
index ae85607..394a5ed 100644
--- a/src/index.ts
+++ b/src/index.ts
@@ -18,7 +18,7 @@ export interface Emitter {
on<T = any>(type: EventType, handler: Handler<T>): void;
on(type: '*', handler: WildcardHandler): void;
- off<T = any>(type: EventType, handler: Handler<T>): void;
+ off<T = any>(type: EventType, handler?: Handler<T>): void;
off(type: '*', handler: WildcardHandler): void;
emit<T = any>(type: EventType, event?: T): void;
@@ -60,10 +60,14 @@ export default function mitt(all?: EventHandlerMap): Emitter {
* @param {Function} handler Handler function to remove
* @memberOf mitt
*/
- off<T = any>(type: EventType, handler: Handler<T>) {
+ off<T = any>(type: EventType, handler?: Handler<T>) {
const handlers = all.get(type);
if (handlers) {
+ if(handler){
handlers.splice(handlers.indexOf(handler) >>> 0, 1);
+ } else {
+ all.delete(type);
+ }
}
},