Skip to content

Commit

Permalink
Merge pull request #3534 from preactjs/improve-types
Browse files Browse the repository at this point in the history
improve compat types
  • Loading branch information
marvinhagemeister committed May 4, 2022
2 parents c7b14ef + a5ac0c5 commit c536b0d
Show file tree
Hide file tree
Showing 3 changed files with 24 additions and 2 deletions.
16 changes: 15 additions & 1 deletion compat/src/index.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,8 @@ declare namespace React {
export import useState = _hooks.useState;

// Preact Defaults
export import ContextType = preact.ContextType;
export import RefObject = preact.RefObject;
export import Component = preact.Component;
export import FunctionComponent = preact.FunctionComponent;
export import FC = preact.FunctionComponent;
Expand All @@ -50,6 +52,16 @@ declare namespace React {
export import StrictMode = preact.Fragment;
export const version: string;

// HTML
export import HTMLAttributes = JSXInternal.HTMLAttributes;
export import DetailedHTMLProps = JSXInternal.DetailedHTMLProps;
export import CSSProperties = JSXInternal.CSSProperties;

// Events
export import TargetedEvent = JSXInternal.TargetedEvent;
export import ChangeEvent = JSXInternal.TargetedEvent;
export import ChangeEventHandler = JSXInternal.GenericEventHandler;

export function createPortal(
vnode: preact.VNode,
container: Element
Expand Down Expand Up @@ -78,7 +90,9 @@ declare namespace React {
...children: preact.ComponentChildren[]
) => preact.VNode<any>;
export function isValidElement(element: any): boolean;
export function findDOMNode(component: preact.Component): Element | null;
export function findDOMNode(
component: preact.Component | Element
): Element | null;

export abstract class PureComponent<P = {}, S = {}> extends preact.Component<
P,
Expand Down
3 changes: 3 additions & 0 deletions src/index.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -303,6 +303,9 @@ export interface Provider<T>
children: ComponentChildren;
}> {}
export interface PreactProvider<T> extends Provider<T> {}
export type ContextType<C extends Context<any>> = C extends Context<infer T>
? T
: never;

export interface Context<T> {
Consumer: Consumer<T>;
Expand Down
7 changes: 6 additions & 1 deletion src/jsx.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -821,6 +821,11 @@ export namespace JSXInternal {
itemRef?: string;
}

export type DetailedHTMLProps<
HA extends HTMLAttributes<RefType>,
RefType extends EventTarget = EventTarget
> = HA;

export interface HTMLMarqueeElement extends HTMLElement {
behavior?: 'scroll' | 'slide' | 'alternate';
bgColor?: string;
Expand Down Expand Up @@ -890,7 +895,7 @@ export namespace JSXInternal {
i: HTMLAttributes<HTMLElement>;
iframe: HTMLAttributes<HTMLIFrameElement>;
img: HTMLAttributes<HTMLImageElement>;
input: HTMLAttributes<HTMLInputElement>;
input: HTMLAttributes<HTMLInputElement> & { defaultValue?: string };
ins: HTMLAttributes<HTMLModElement>;
kbd: HTMLAttributes<HTMLElement>;
keygen: HTMLAttributes<HTMLUnknownElement>;
Expand Down

0 comments on commit c536b0d

Please sign in to comment.