1234567891011121314151617181920212223242526272829 |
- 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<T>(eventName: keyof typeof event, ...args: any):T {
- if (event.hasOwnProperty(eventName)) {
- return event[eventName](...args)
- } else {
- throw new Error(`不存在事件 => ${eventName}`)
- }
- }
- }
|