jsx-view
Version:
Minimal JSX for HTML DOM tightly integrated with RxJS. TypeScript definitions, and attributes can be assigned to observables.
24 lines • 1.03 kB
TypeScript
declare const _default: {};
export default _default;
declare type NonNullableValues<T> = {
[P in keyof T]-?: NonNullable<T[P]>;
};
declare type EventOnListeners = NonNullableValues<Omit<GlobalEventHandlers, "addEventListener" | "removeEventListener" | "oninput" | "onchange">>;
declare type EventPropsWithThisElement<T> = {
[P in keyof EventOnListeners]: Parameters<EventOnListeners[P]> extends [infer E] ? (this: T, event: E) => any | null : EventOnListeners[P];
};
declare global {
interface InputEvent extends Event {
target: HTMLInputElement | HTMLTextAreaElement;
}
interface ChangeEvent extends Event {
target: HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement;
}
namespace JSX {
interface HtmlProps<T extends HTMLElement = HTMLElement> extends Partial<EventPropsWithThisElement<T>> {
oninput?: (this: T, event: InputEvent) => any;
onchange?: (this: T, event: ChangeEvent) => any;
}
}
}
//# sourceMappingURL=declare-events.d.ts.map