import { Destroyable } from '../common'; import { XEventListener, IEventTarget } from './event.interface'; /** * 只能先“订阅”再“发布” * 全局对象会产生命名冲突 * 观察者模式有两个明显的优点 * 时间上解耦 * 对象间解耦 * 它应用广泛,但是也有缺点 * 创建这个函数同样需要内存,过度使用会导致难以跟踪维护 */ export declare class BaseEventTarget extends Destroyable implements IEventTarget { private _map; constructor(); addEventListener(eventName: string, listener: XEventListener): IEventTarget; removeEventListener(eventName: string, listener?: XEventListener): void; dispatchEvent(eventName: string, ...args: Array): void; }