vue-tree-polyfill
Version:
A vue tree component using virtual list.
26 lines (25 loc) • 1.15 kB
TypeScript
import { TreeNodeKeyType } from '../types';
import TreeNode from './tree-node';
type NodeGeneralListenerType = (node: TreeNode) => void;
export type ListenerType<T extends keyof IEventNames> = IEventNames[T];
export interface IEventNames {
'set-data': () => void;
'visible-data-change': () => void;
'render-data-change': () => void;
expand: NodeGeneralListenerType;
select: NodeGeneralListenerType;
unselect: NodeGeneralListenerType;
'selected-change': (node: TreeNode | null, key: TreeNodeKeyType | null) => void;
check: NodeGeneralListenerType;
uncheck: NodeGeneralListenerType;
'checked-change': (nodes: TreeNode[], keys: TreeNodeKeyType[]) => void;
}
export default class TreeEventTarget {
/** 事件 listeners */
private listenersMap;
on<T extends keyof IEventNames>(eventName: T, listener: ListenerType<T> | Array<ListenerType<T>>): void;
off<T extends keyof IEventNames>(eventName: T, listener?: ListenerType<T>): void;
emit<T extends keyof IEventNames>(eventName: T, ...args: Parameters<IEventNames[T]>): void;
disposeListeners(): void;
}
export {};