@types/create-react-class
Version:
TypeScript definitions for create-react-class
42 lines (34 loc) • 1.39 kB
TypeScript
import type * as PropTypes from "prop-types";
import { Component, ComponentClass, ComponentLifecycle, ReactNode } from "react";
declare namespace createReactClass {
interface Mixin<P, S> extends ComponentLifecycle<P, S> {
mixins?: Array<Mixin<P, S>> | undefined;
statics?: {
[key: string]: any;
} | undefined;
displayName?: string | undefined;
propTypes?: PropTypes.ValidationMap<any> | undefined;
contextTypes?: PropTypes.ValidationMap<any> | undefined;
childContextTypes?: PropTypes.ValidationMap<any> | undefined;
getDefaultProps?(): P;
getInitialState?(): S;
}
interface ComponentSpec<P, S> extends Mixin<P, S> {
render(): ReactNode;
[propertyName: string]: any;
}
interface ClassicComponent<P = {}, S = {}> extends Component<P, S> {
replaceState(nextState: S, callback?: () => void): void;
isMounted(): boolean;
getInitialState?(): S;
}
interface ClassicComponentClass<P = {}> extends Omit<ComponentClass<P>, "new"> {
new(props: P, context?: any): ClassicComponent<P, any>;
getDefaultProps?(): P;
}
}
declare function createReactClass<P, S = {}>(
spec: createReactClass.ComponentSpec<P, S>,
): createReactClass.ClassicComponentClass<P>;
export as namespace createReactClass;
export = createReactClass;