@types/react-dom
Version:
TypeScript definitions for react-dom
109 lines (91 loc) • 3.47 kB
TypeScript
// NOTE: Users of the `experimental` builds of React should add a reference
// to 'react-dom/experimental' in their project. See experimental.d.ts's top comment
// for reference and documentation on how exactly to do it.
export as namespace ReactDOM;
import {
CElement,
Component,
ComponentState,
DOMAttributes,
DOMElement,
FunctionComponentElement,
ReactElement,
ReactInstance,
ReactNode,
ReactPortal,
} from "react";
export function findDOMNode(instance: ReactInstance | null | undefined): Element | null | Text;
export function unmountComponentAtNode(container: Element | DocumentFragment): boolean;
export function createPortal(
children: ReactNode,
container: Element | DocumentFragment,
key?: null | string,
): ReactPortal;
export const version: string;
export const render: Renderer;
export const hydrate: Renderer;
export function flushSync<R>(fn: () => R): R;
export function flushSync<A, R>(fn: (a: A) => R, a: A): R;
export function unstable_batchedUpdates<A, R>(callback: (a: A) => R, a: A): R;
export function unstable_batchedUpdates<R>(callback: () => R): R;
export function unstable_renderSubtreeIntoContainer<T extends Element>(
parentComponent: Component<any>,
element: DOMElement<DOMAttributes<T>, T>,
container: Element,
callback?: (element: T) => any,
): T;
export function unstable_renderSubtreeIntoContainer<P, T extends Component<P, ComponentState>>(
parentComponent: Component<any>,
element: CElement<P, T>,
container: Element,
callback?: (component: T) => any,
): T;
export function unstable_renderSubtreeIntoContainer<P>(
parentComponent: Component<any>,
element: ReactElement<P>,
container: Element,
callback?: (component?: Component<P, ComponentState> | Element) => any,
// eslint-disable-next-line @typescript-eslint/no-invalid-void-type
): Component<P, ComponentState> | Element | void;
export type Container = Element | Document | DocumentFragment;
export interface Renderer {
// Deprecated(render): The return value is deprecated.
// In future releases the render function's return type will be void.
<T extends Element>(
element: DOMElement<DOMAttributes<T>, T>,
container: Container | null,
callback?: () => void,
): T;
(
element: Array<DOMElement<DOMAttributes<any>, any>>,
container: Container | null,
callback?: () => void,
): Element;
(
element: FunctionComponentElement<any> | Array<FunctionComponentElement<any>>,
container: Container | null,
callback?: () => void,
): void;
<P, T extends Component<P, ComponentState>>(
element: CElement<P, T>,
container: Container | null,
callback?: () => void,
): T;
(
element: Array<CElement<any, Component<any, ComponentState>>>,
container: Container | null,
callback?: () => void,
): Component<any, ComponentState>;
<P>(
element: ReactElement<P>,
container: Container | null,
callback?: () => void,
// eslint-disable-next-line @typescript-eslint/no-invalid-void-type
): Component<P, ComponentState> | Element | void;
(
element: ReactElement[],
container: Container | null,
callback?: () => void,
// eslint-disable-next-line @typescript-eslint/no-invalid-void-type
): Component<any, ComponentState> | Element | void;
}