Skip to content

Commit d9200e1

Browse files
committed
chore(mapDispatchToProps): port to typescript
1 parent 9249108 commit d9200e1

File tree

3 files changed

+20
-7
lines changed

3 files changed

+20
-7
lines changed

src/connect/mapDispatchToProps.js renamed to src/connect/mapDispatchToProps.ts

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,28 @@
1+
import { ActionCreator, ActionCreatorsMapObject, Dispatch } from 'redux'
12
import bindActionCreators from '../utils/bindActionCreators'
23
import { wrapMapToPropsConstant, wrapMapToPropsFunc } from './wrapMapToProps'
34

4-
export function whenMapDispatchToPropsIsFunction(mapDispatchToProps) {
5+
export function whenMapDispatchToPropsIsFunction(
6+
mapDispatchToProps: ActionCreatorsMapObject | ActionCreator<any>
7+
) {
58
return typeof mapDispatchToProps === 'function'
69
? wrapMapToPropsFunc(mapDispatchToProps, 'mapDispatchToProps')
710
: undefined
811
}
912

10-
export function whenMapDispatchToPropsIsMissing(mapDispatchToProps) {
13+
export function whenMapDispatchToPropsIsMissing(
14+
mapDispatchToProps: ActionCreatorsMapObject | ActionCreator<any>
15+
) {
1116
return !mapDispatchToProps
1217
? wrapMapToPropsConstant((dispatch) => ({ dispatch }))
1318
: undefined
1419
}
1520

16-
export function whenMapDispatchToPropsIsObject(mapDispatchToProps) {
21+
export function whenMapDispatchToPropsIsObject(
22+
mapDispatchToProps: ActionCreatorsMapObject | ActionCreator<any>
23+
) {
1724
return mapDispatchToProps && typeof mapDispatchToProps === 'object'
18-
? wrapMapToPropsConstant((dispatch) =>
25+
? wrapMapToPropsConstant((dispatch: Dispatch) =>
1926
bindActionCreators(mapDispatchToProps, dispatch)
2027
)
2128
: undefined

src/connect/wrapMapToProps.ts

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { Dispatch } from 'redux'
1+
import { ActionCreatorsMapObject, Dispatch, ActionCreator } from 'redux'
22

33
import { FixTypeLater } from '../types'
44
import verifyPlainObject from '../utils/verifyPlainObject'
@@ -20,7 +20,13 @@ export function wrapMapToPropsConstant(
2020
// could be a dispatch function in some cases (ex: whenMapDispatchToPropsIsMissing)
2121
// and a state object in some others (ex: whenMapStateToPropsIsMissing)
2222
// eslint-disable-next-line no-unused-vars
23-
getConstant: (dispatch: Dispatch) => { dispatch?: Dispatch }
23+
getConstant: (dispatch: Dispatch) =>
24+
| {
25+
dispatch?: Dispatch
26+
dependsOnOwnProps?: boolean
27+
}
28+
| ActionCreatorsMapObject
29+
| ActionCreator<any>
2430
) {
2531
return function initConstantSelector(dispatch: Dispatch) {
2632
const constant = getConstant(dispatch)

src/utils/bindActionCreators.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ function bindActionCreator<A extends AnyAction = AnyAction>(
1717
export default function bindActionCreators(
1818
actionCreators: ActionCreator<any> | ActionCreatorsMapObject,
1919
dispatch: Dispatch
20-
) {
20+
): ActionCreatorsMapObject | ActionCreator<any> {
2121
if (typeof actionCreators === 'function') {
2222
return bindActionCreator(actionCreators, dispatch)
2323
}

0 commit comments

Comments
 (0)