diff --git a/types/react/v15/index.d.ts b/types/react/v15/index.d.ts index c35e2df3c0..19cd290c7b 100644 --- a/types/react/v15/index.d.ts +++ b/types/react/v15/index.d.ts @@ -78,7 +78,7 @@ declare namespace React { type ComponentType

= ComponentClass

| StatelessComponent

; type Key = string | number; - type Ref = string | ((instance: T | null) => any); + type Ref = string | { bivarianceHack(instance: T | null): any }["bivarianceHack"]; // tslint:disable-next-line:interface-over-type-literal type ComponentState = {}; @@ -521,7 +521,7 @@ declare namespace React { // Event Handler Types // ---------------------------------------------------------------------- - type EventHandler> = (event: E) => void; + type EventHandler> = { bivarianceHack(event: E): void }["bivarianceHack"]; type ReactEventHandler = EventHandler>; @@ -3335,7 +3335,7 @@ declare namespace React { // React.PropTypes // ---------------------------------------------------------------------- - type Validator = (object: T, key: string, componentName: string, ...rest: any[]) => Error | null; + type Validator = { bivarianceHack(object: T, key: string, componentName: string, ...rest: any[]): Error | null }["bivarianceHack"]; interface Requireable extends Validator { isRequired: Validator;