const event: { [key: string]: Function } = {} /** 事件句柄 */ export default { /** 绑定一个事件 */ $on(eventName: string, eventFun: Function) { if (event.hasOwnProperty(eventName)) { throw new Error(`存在事件 => ${eventName}`) } else { event[eventName] = eventFun } }, /** 解绑一个事件 */ $off(eventName: keyof typeof event) { if (event.hasOwnProperty(eventName)) { delete event[eventName] } else { throw new Error(`不存在事件 => ${eventName}`) } }, /** 触发一个事件 */ $emit(eventName: keyof typeof event, ...args: any):T { if (event.hasOwnProperty(eventName)) { return event[eventName](...args) } else { throw new Error(`不存在事件 => ${eventName}`) } } }