> { type: string | ComponentClass
| StatelessComponent
;
props: P;
- key: Key;
- ref: Ref extends ReactElement {
@@ -25,16 +31,16 @@ declare namespace __React {
ref: Ref > extends ReactElement {
+ interface DOMElement extends ReactElement {
type: string;
ref: Ref {
- (props?: P, ...children: ReactNode[]): ReactElement ;
+ (props?: P & Attributes, ...children: ReactNode[]): ReactElement ;
}
interface ClassicFactory extends Factory {
- (props?: P, ...children: ReactNode[]): ClassicElement ;
+ (props?: P & ClassAttributes ;
}
- interface DOMFactory > extends Factory {
- (props?: P, ...children: ReactNode[]): DOMElement ;
+ interface DOMFactory {
+ (props?: P & ClassAttributes ;
}
- type HTMLFactory = DOMFactory (type: ClassicComponentClass ): ClassicFactory ;
function createFactory (type: ComponentClass | StatelessComponent ): Factory ;
- function createElement (
+ function createElement (
type: string,
- props?: P,
+ props?: P & ClassAttributes ;
function createElement (
type: ClassicComponentClass ,
- props?: P,
+ props?: P & ClassAttributes ;
function createElement (
type: ComponentClass | StatelessComponent ,
- props?: P,
+ props?: P & ClassAttributes ;
function cloneElement(
element: ReactHTMLElement,
- props?: HTMLProps (
element: ClassicElement ,
- props?: Q,
+ props?: Q & ClassAttributes ;
function cloneElement (
element: ReactElement ,
- props?: Q,
+ props?: Q & Attributes,
...children: ReactNode[]): ReactElement ;
- function isValidElement(object: {}): boolean;
+ function isValidElement (object: {}): object is ReactElement ;
var DOM: ReactDOM;
var PropTypes: ReactPropTypes;
@@ -128,7 +134,13 @@ declare namespace __React {
setState(state: S, callback?: () => any): void;
forceUpdate(callBack?: () => any): void;
render(): JSX.Element;
- props: P;
+
+ // React.Props