@saber2pr/react
Version:
react in Typescript.
89 lines (88 loc) • 5.12 kB
TypeScript
import { createRenderer } from "../react-reconciler/ReactFiberReconciler";
import { Children as ReactChildren } from "./ReactChildren";
import * as ReactElementType from "../shared/ReactElementType";
import * as ReactContext from "./ReactContext";
import * as ReactStack from "../shared/testStackSize";
import * as ReactMemo from "./memo";
declare namespace React {
const useCallBack: <T extends Function>(callback: T, deps?: readonly any[]) => T;
const useMemo: <T>(memoFunc: () => T, deps?: readonly any[]) => T;
const useReducer: <S, A>(initReducer: (state: S, action: A) => S, initialState: S, initAction?: A) => [S, (action: A) => void];
const useRef: <T>(value?: T) => ReactElementType.MutableRefObject<T>;
const useState: <T>(initialState: T) => [T, (state: T) => void];
const useEffect: (create: import("../shared/ReactTypes").Effect, deps?: readonly any[]) => void;
const useImperativeHandle: <T, R extends T>(ref: ReactElementType.RefObject<T>, creator: () => R, deps?: readonly any[]) => void;
const createElement: (tag: any, props: object, ...children: any[]) => import("../shared/ReactTypes").Fiber;
const Children: typeof ReactChildren;
const Fragment: symbol;
const forwardRef: <T extends Object, P extends Object = {}>(FC: ReactElementType.RefForwardingComponent<T, P>) => ({ ref, ...props }: {
ref: ReactElementType.MutableRefObject<T>;
} & P) => ReactElementType.ReactElement;
const lazy: <T extends Object>(lazyComponent: ReactElementType.LazyComponent<T>) => (props: T) => JSX.Element;
const Suspense: ({ fallback, children }: {
fallback: JSX.Element;
children?: JSX.Element;
}) => JSX.Element;
const memo: typeof ReactMemo.memo;
const createContext: typeof ReactContext.createContext;
const Stack: typeof ReactStack;
}
declare type Override<T, K extends keyof T, V> = {
[P in keyof T]: P extends K ? V : T[P];
};
declare namespace React {
export type MutableRefObject<T> = ReactElementType.MutableRefObject<T>;
export type Props<T> = ReactElementType.Props<T>;
type ExAttributes<T> = {
dangerouslySetInnerHTML?: {
__html: string;
};
} & Props<T>;
export type HTMLAttributes<T extends HTMLElement> = Override<T, "style", CSSProperties> & ExAttributes<T>;
export type IntrinsicAttributes<T extends HTMLElement> = Partial<HTMLAttributes<T>>;
export type CSSProperties = Partial<CSSStyleDeclaration>;
export type FC<T extends Object> = ReactElementType.FC<T>;
export type ComponentType<T> = FC<T>;
export type ReactElement = ReactElementType.ReactElement;
export type RefForwardingComponent<T, P> = ReactElementType.RefForwardingComponent<T, P>;
export type Consumer<T> = ReactElementType.Consumer<T>;
export type Provider<T> = ReactElementType.Provider<T>;
export type ReactContext<T> = ReactElementType.ReactContext<T>;
export {};
}
declare global {
namespace JSX {
type IntrinsicElements = {
[K in keyof HTMLElementTagNameMap]: React.IntrinsicAttributes<HTMLElementTagNameMap[K]>;
};
interface Element extends React.ReactElement {
}
interface ElementChildrenAttribute {
children: {};
}
export import RefAttributes = React.MutableRefObject;
}
}
declare const useCallBack: <T extends Function>(callback: T, deps?: readonly any[]) => T;
declare const useMemo: <T>(memoFunc: () => T, deps?: readonly any[]) => T;
declare const useReducer: <S, A>(initReducer: (state: S, action: A) => S, initialState: S, initAction?: A) => [S, (action: A) => void];
declare const useRef: <T>(value?: T) => ReactElementType.MutableRefObject<T>;
declare const useState: <T>(initialState: T) => [T, (state: T) => void];
declare const useEffect: (create: import("../shared/ReactTypes").Effect, deps?: readonly any[]) => void;
declare const useImperativeHandle: <T, R extends T>(ref: ReactElementType.RefObject<T>, creator: () => R, deps?: readonly any[]) => void;
declare type CSSProperties = React.CSSProperties;
declare type Props<T extends HTMLElement> = React.Props<T>;
declare const Fragment: symbol;
declare const forwardRef: <T extends Object, P extends Object = {}>(FC: ReactElementType.RefForwardingComponent<T, P>) => ({ ref, ...props }: {
ref: ReactElementType.MutableRefObject<T>;
} & P) => ReactElementType.ReactElement;
declare const lazy: <T extends Object>(lazyComponent: ReactElementType.LazyComponent<T>) => (props: T) => JSX.Element;
declare const Suspense: ({ fallback, children }: {
fallback: JSX.Element;
children?: JSX.Element;
}) => JSX.Element;
declare const memo: typeof ReactMemo.memo;
declare const createContext: typeof ReactContext.createContext;
declare const Stack: typeof ReactStack;
export default React;
export { React, useCallBack, useMemo, useReducer, useRef, useState, useEffect, useImperativeHandle, createRenderer, CSSProperties, Props, Fragment, forwardRef, lazy, Suspense, memo, createContext, Stack };