mostly-dom
Version:
A virtual-dom for TypeScript
13 lines (12 loc) • 623 B
TypeScript
import { ElementVNode } from './VirtualNode';
export declare type VNodeEvent<T, Ev extends Event> = Ev & {
currentTarget: T;
};
export declare type EventHandler<T extends Element, Ev extends Event> = (event: VNodeEvent<T, Ev>, vNode: ElementVNode<T>) => any;
export declare type VNodeEvents<T extends Element, EventMap extends {
[K in keyof EventMap]: Event;
}> = {
[K in keyof EventMap]?: EventHandler<T, EventMap[K]>;
};
export declare type ElementEvents<T extends Element> = VNodeEvents<T, ElementEventMap>;
export declare type HtmlElementEvents<T extends HTMLElement> = VNodeEvents<T, HTMLElementEventMap>;