(kitty.find, kitty)({cute: true}).done((kitties: any[]) => {
});
/**
diff --git a/types/q/tsconfig.json b/types/q/tsconfig.json
index 12c105d622..40c079d929 100644
--- a/types/q/tsconfig.json
+++ b/types/q/tsconfig.json
@@ -8,6 +8,7 @@
"noImplicitAny": true,
"noImplicitThis": true,
"strictNullChecks": false,
+ "strictFunctionTypes": true,
"baseUrl": "../",
"typeRoots": [
"../"
diff --git a/types/react/index.d.ts b/types/react/index.d.ts
index 56d417319a..f7ce03ec91 100644
--- a/types/react/index.d.ts
+++ b/types/react/index.d.ts
@@ -72,7 +72,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 = {};
@@ -555,7 +555,7 @@ declare namespace React {
// Event Handler Types
// ----------------------------------------------------------------------
- type EventHandler> = (event: E) => void;
+ type EventHandler> = { bivarianceHack(event: E): void }["bivarianceHack"];
type ReactEventHandler = EventHandler>;
@@ -3369,7 +3369,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;
diff --git a/types/react/tsconfig.json b/types/react/tsconfig.json
index d2c4600811..4c27ed5e21 100644
--- a/types/react/tsconfig.json
+++ b/types/react/tsconfig.json
@@ -14,6 +14,7 @@
"noImplicitAny": true,
"noImplicitThis": false,
"strictNullChecks": true,
+ "strictFunctionTypes": true,
"baseUrl": "../",
"typeRoots": [
"../"