declare namespace AMap { namespace LabelsLayer { interface EventMap { click: Event<'click', LabelsLayerEvent>; mouseover: Event<'mouseover', LabelsLayerEvent>; mouseout: Event<'mouseout', LabelsLayerEvent>; mousemove: Event<'mousemove', LabelsLayerEvent>; mousedown: Event<'mousedown', LabelsLayerEvent>; mouseup: Event<'mouseup', LabelsLayerEvent>; touchstart: Event<'touchstart', LabelsLayerEvent>; touchend: Event<'touchend', LabelsLayerEvent>; } interface EventData { data: { id: number; name: string; position: [number, number] | [string, string]; zooms: [number, number]; rank?: number; txt?: string; }; opts: { opacity: number; zIndex: number; icon: LabelMarker.IconOptions; text: LabelMarker.TextOptions; }; } interface LabelsLayerEvent { data: EventData; target: I; pixel: Pixel; lnglat: LngLat; } interface Options extends Layer.Options { /** * 图层是否可见 */ visible?: boolean; /** * 图层的层级 */ zIndex?: number; /** * 图层的透明度 */ opacity?: number; zooms?: [number, number]; } } class LabelsLayer extends Layer { /** * 标注图层 * @param options 选项 */ constructor(options?: LabelsLayer.Options); /** * 图层中添加LabelMarker * @param labelMarker 标注对象 */ add(labelMarker: LabelMarker | LabelMarker[]): void; /** * 图层中移除LabelMarker * @param labelMarker 标注对象 */ remove(labelMarker: LabelMarker): void; /** * 清空图层 */ clear(): void; /** * 注册事件 * @param eventName 事件名称 * @param handler 事件回调函数 * @param context 事件回调中的上下文 * @param once 触发一次 * @param unshift 更改事件顺序 */ on( eventName: string, handler: (this: C, event: any) => void, context?: C, once?: boolean, unshift?: boolean ): any; // should be void /** * 移除事件绑定 * @param eventName 事件名称 * @param handler 事件功能函数 * @param context 事件上下文 */ off( eventName: string, handler: ((this: C, event: any) => void) | 'mv', context?: C ): any; // should be void } }