(R.toLower, R.prop("name")));
const alice = {
name: "ALICE",
age : 101
diff --git a/types/react-native/test/index.tsx b/types/react-native/test/index.tsx
index 15f86af6c3..85c798bee6 100644
--- a/types/react-native/test/index.tsx
+++ b/types/react-native/test/index.tsx
@@ -299,7 +299,7 @@ class ScrollerListComponentTest extends React.Component<{}, { dataSource: ListVi
return
}}
- renderRow={({ type, data }, _, row: number) => {
+ renderRow={({ type, data }, _, row) => {
return Filler
}
} />
diff --git a/types/react-redux/react-redux-tests.tsx b/types/react-redux/react-redux-tests.tsx
index 1b10f6d645..e726bf104f 100644
--- a/types/react-redux/react-redux-tests.tsx
+++ b/types/react-redux/react-redux-tests.tsx
@@ -381,6 +381,7 @@ interface DispatchProps {
declare var actionCreators: () => {
action: Function;
}
+declare var dispatchActionCreators: () => DispatchProps;
declare var addTodo: () => { type: string; };
declare var todoActionCreators: { [type: string]: (...args: any[]) => any; };
declare var counterActionCreators: { [type: string]: (...args: any[]) => any; };
@@ -521,7 +522,7 @@ function mergeProps(stateProps: TodoState, dispatchProps: DispatchProps, ownProp
});
}
-connect(mapStateToProps2, actionCreators, mergeProps)(MyRootComponent);
+connect(mapStateToProps2, dispatchActionCreators, mergeProps)(MyRootComponent);
//https://github.com/DefinitelyTyped/DefinitelyTyped/issues/14622#issuecomment-279820358
diff --git a/types/react/index.d.ts b/types/react/index.d.ts
index f3b2d30884..f811bf488b 100644
--- a/types/react/index.d.ts
+++ b/types/react/index.d.ts
@@ -74,7 +74,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 = {};
@@ -557,7 +557,7 @@ declare namespace React {
// Event Handler Types
// ----------------------------------------------------------------------
- type EventHandler> = (event: E) => void;
+ type EventHandler> = { bivarianceHack(event: E): void }["bivarianceHack"];
type ReactEventHandler = EventHandler>;
@@ -3371,7 +3371,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/sharepoint/sharepoint-tests.ts b/types/sharepoint/sharepoint-tests.ts
index 8d62972490..b41c38f97d 100644
--- a/types/sharepoint/sharepoint-tests.ts
+++ b/types/sharepoint/sharepoint-tests.ts
@@ -530,7 +530,8 @@ namespace CSR {
.onPreRender(hookFormContext)
.onPostRender(fixCsrCustomLayout);
- function hookFormContext(ctx: FormRenderContexWithHook) {
+ function hookFormContext(preRenderContext: SPClientTemplates.RenderContext /* FormRenderContexWithHook */) {
+ let ctx = preRenderContext as FormRenderContexWithHook;
if (ctx.ControlMode === SPClientTemplates.ClientControlMode.EditForm
|| ctx.ControlMode === SPClientTemplates.ClientControlMode.NewForm) {
for (const fieldSchemaInForm of ctx.ListSchema.Field) {
@@ -561,7 +562,8 @@ namespace CSR {
}
}
- function fixCsrCustomLayout(ctx: SPClientTemplates.RenderContext_Form) {
+ function fixCsrCustomLayout(postRenderContext: SPClientTemplates.RenderContext /* SPClientTemplates.RenderContext_Form */) {
+ let ctx = postRenderContext as SPClientTemplates.RenderContext_Form;
if (ctx.ControlMode === SPClientTemplates.ClientControlMode.Invalid
|| ctx.ControlMode === SPClientTemplates.ClientControlMode.View) {
return;
@@ -817,7 +819,8 @@ namespace CSR {
}
}
})
- .onPostRenderField(fieldName, (schema: SPClientTemplates.FieldSchema_InForm_User, ctx) => {
+ .onPostRenderField(fieldName, (postRenderSchema, ctx) => {
+ let schema = postRenderSchema as SPClientTemplates.FieldSchema_InForm_User;
if (ctx.ControlMode === SPClientTemplates.ClientControlMode.EditForm
|| ctx.ControlMode === SPClientTemplates.ClientControlMode.NewForm) {
if (schema.Type === 'User' || schema.Type === 'UserMulti') {
@@ -1148,7 +1151,9 @@ namespace CSR {
computedValue(targetField: string, transform: (...values: string[]) => string, ...sourceField: string[]): CSR {
const dependentValues: { [field: string]: string } = {};
- return this.onPostRenderField(targetField, (schema: SPClientTemplates.FieldSchema_InForm, ctx: SPClientTemplates.RenderContext_FieldInForm) => {
+ return this.onPostRenderField(targetField, (postRenderSchema, postRenderContext) => {
+ let schema = postRenderSchema as SPClientTemplates.FieldSchema_InForm;
+ let ctx = postRenderContext as SPClientTemplates.RenderContext_FieldInForm;
if (ctx.ControlMode === SPClientTemplates.ClientControlMode.EditForm
|| ctx.ControlMode === SPClientTemplates.ClientControlMode.NewForm) {
const targetControl = CSR.getControl(schema as SPClientTemplates.FieldSchema_InForm);
@@ -1165,8 +1170,8 @@ namespace CSR {
setInitialValue(fieldName: string, value: any, ignoreNull?: boolean): CSR {
if (value || !ignoreNull) {
- return this.onPreRenderField(fieldName, (schema, ctx: SPClientTemplates.RenderContext_FieldInForm) => {
- ctx.ListData.Items[0][fieldName] = value;
+ return this.onPreRenderField(fieldName, (schema, ctx) => {
+ (ctx as SPClientTemplates.RenderContext_FieldInForm).ListData.Items[0][fieldName] = value;
});
} else {
return this;
@@ -1335,8 +1340,9 @@ namespace CSR {
}
lookupAddNew(fieldName: string, prompt: string, showDialog?: boolean, contentTypeId?: string): CSR {
- return this.onPostRenderField(fieldName,
- (schema: SPClientTemplates.FieldSchema_InForm_Lookup, ctx: SPClientTemplates.RenderContext_FieldInForm) => {
+ return this.onPostRenderField(fieldName, (postRenderSchema, postRenderContext) => {
+ let schema = postRenderSchema as SPClientTemplates.FieldSchema_InForm_Lookup;
+ let ctx = postRenderContext as SPClientTemplates.RenderContext_FieldInForm;
let control: HTMLInputElement;
if (ctx.ControlMode === SPClientTemplates.ClientControlMode.EditForm
|| ctx.ControlMode === SPClientTemplates.ClientControlMode.NewForm)
@@ -2271,7 +2277,8 @@ namespace SampleReputation {
SP.SOD.registerSod('typescripttemplates.ts', '/SPTypeScript/Extensions/typescripttemplates.js');
SP.SOD.executeFunc('typescripttemplates.ts', 'CSR', () => {
CSR.override(10004, 1)
- .onPreRender((ctx: MyList) => {
+ .onPreRender(preRenderContext => {
+ let ctx = preRenderContext as MyList;
ctx.listId = ctx.listName.substring(1, 37);
})
.header('')
@@ -2287,7 +2294,8 @@ namespace SampleReputation {
SP.SOD.notifyScriptLoadedAndExecuteWaitingJobs('likes.js');
}
- function renderTemplate(ctx: MyList) {
+ function renderTemplate(renderContext: SPClientTemplates.RenderContext) {
+ let ctx = renderContext as MyList;
const rows = ctx.ListData.Row;
let result = '';
for (const row of rows) {
diff --git a/types/webpack/webpack-tests.ts b/types/webpack/webpack-tests.ts
index fe52321f79..09405f3271 100644
--- a/types/webpack/webpack-tests.ts
+++ b/types/webpack/webpack-tests.ts
@@ -631,7 +631,7 @@ configuration = {
performance,
};
-function loader(this: webpack.loader.LoaderContext, source: string, sourcemap: string): void {
+function loader(this: webpack.loader.LoaderContext, source: string | Buffer, sourcemap: string | Buffer): void {
this.cacheable();
this.async();