extends Mixin
{ displayName?: string; mixins?: Mixin
[]; - statics?: FunctionMap; - propTypes?: FunctionMap; + statics?: { + [key: string]: Function; + }; + propTypes?: ValidationMap
;
getDefaultProps?(): P;
getInitialState?(): S;
render(): Descriptor {
+ // TODO: Refs
+ props: P;
+ state: S;
setState(nextState: S, callback?: () => void): void;
replaceState(nextState: S, callback?: () => void): void;
forceUpdate(callback?: () => void): void;
@@ -60,25 +61,34 @@ declare module "react" {
new(): any;
}
- interface Requireable extends Function {
- isRequired: Function;
+ interface Validator {
+ (props: P, propName: string, componentName: string): Error;
}
- export var PropsTypes: {
- any: Requireable;
- array: Requireable;
- bool: Requireable;
- func: Requireable;
- number: Requireable;
- object: Requireable;
- string: Requireable;
- renderable: Requireable;
- component: Requireable;
- instanceOf: (clazz: Constructable) => Requireable;
- oneOf: (types: any[]) => Requireable;
- oneOfType: (types: Function[]) => Requireable;
- arrayOf: (type: Function) => Requireable;
- shape: (type: FunctionMap) => Requireable;
+ interface Requireable extends Validator {
+ isRequired: Validator ;
+ }
+
+ interface ValidationMap {
+ [key: string]: Validator ;
+ }
+
+ export var PropTypes: {
+ any: Requireable