diff --git a/types/prop-types/index.d.ts b/types/prop-types/index.d.ts index 8b13789179..8cf962087e 100644 --- a/types/prop-types/index.d.ts +++ b/types/prop-types/index.d.ts @@ -1 +1,35 @@ +// Type definitions for prop-types v15.5.4 +// Project: https://github.com/reactjs/prop-types +// Definitions by: DovydasNavickas +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped +// TypeScript Version: 2.2 +interface Validator { + (object: T, key: string, componentName: string, ...rest: any[]): Error | null; +} + +interface Requireable extends Validator { + isRequired: Validator; +} + +type ValidationMap = {[K in keyof T]?: Validator }; + +declare namespace ReactPropTypes { + export var any: Requireable; + export var array: Requireable; + export var bool: Requireable; + export var func: Requireable; + export var number: Requireable; + export var object: Requireable; + export var string: Requireable; + export var node: Requireable; + export var element: Requireable; + export function instanceOf(expectedClass: {}): Requireable; + export function oneOf(types: any[]): Requireable; + export function oneOfType(types: Validator[]): Requireable; + export function arrayOf(type: Validator): Requireable; + export function objectOf(type: Validator): Requireable; + export function shape(type: ValidationMap): Requireable; +} + +export = ReactPropTypes;