export interface IEvent extends Event, MouseEvent, IEventCustom, KeyboardEvent, ErrorEvent { target: IEventTarget; keyCode: number; dataTransfer?: DataTransfer; clipboardData?: DataTransfer; which: number; } export interface IEventTarget extends EventTarget { value: any; selectionStart: number; scrollHeight: number; scrollTop: number; offsetHeight: number; style: any; files?: any; src?: string; innerHTML: any; textContent: string; parentElement: any; getAttribute: (key: string) => any; setAttribute: (key: string, value: any) => void; className: string; } export interface IEventCustom { target: IEventTarget; data: any; keyCode?: number; fakeEvent?: boolean; which?: number; inputType?: 'deleteContentBackward' | 'insertText' | 'insertFromPaste' | 'insertCompositionText'; preventDefault: () => void; }