import mitt from 'mitt' interface Adapter { $on(event: string, fn: (...args: any[]) => void): void $off(event: string): void $emit(event: string, ...args: any[]): void } export class busEvent implements Adapter { private mitt constructor() { this.mitt = mitt() } $on(event: string, fn: (...args: any[]) => void): void { this.mitt.on && this.mitt.on(event, fn) } $off(event: string): void { this.mitt.off && this.mitt.off(event) } $emit(event: string, value: any): void { this.mitt.emit && this.mitt.emit(event, value) } on(event: string, fn: (...args: any[]) => void): void { this.mitt.on && this.mitt.on(event, fn) } off(event: string): void { this.mitt.off && this.mitt.off(event) } emit(event: string, value: any): void { this.mitt.emit && this.mitt.emit(event, value) } }