diff --git a/react-redux/react-redux-tests.tsx b/react-redux/react-redux-tests.tsx index 4158a035ed..d22f3aef46 100644 --- a/react-redux/react-redux-tests.tsx +++ b/react-redux/react-redux-tests.tsx @@ -285,6 +285,37 @@ let ConnectedHelloMessage = connect()(HelloMessage); ReactDOM.render(, document.getElementById('content')); ReactDOM.render(, document.getElementById('content')); +// stateless functions that uses mapStateToProps and mapDispatchToProps +namespace TestStatelessFunctionWithMapArguments { + interface GreetingProps { + name: string; + onClick: () => void; + } + + function Greeting(props: GreetingProps) { + return
Hello {props.name}
; + } + + const mapStateToProps = (state: any, ownProps: GreetingProps) => { + return { + name: 'Connected! ' + ownProps.name + }; + }; + + const mapDispatchToProps = (dispatch: Dispatch, ownProps: GreetingProps) => { + return { + onClick: () => { + dispatch({ type: 'GREETING', name: ownProps.name }); + } + }; + }; + + const ConnectedGreeting = connect( + mapStateToProps, + mapDispatchToProps + )(Greeting); +} + // https://github.com/DefinitelyTyped/DefinitelyTyped/issues/8787 namespace TestTOwnPropsInference { interface OwnProps { diff --git a/react-redux/react-redux.d.ts b/react-redux/react-redux.d.ts index 0e7810e352..2e3e69dc68 100644 --- a/react-redux/react-redux.d.ts +++ b/react-redux/react-redux.d.ts @@ -11,7 +11,7 @@ declare module "react-redux" { import { Store, Dispatch, ActionCreator } from 'redux'; interface ComponentDecorator { - (component: ComponentClass): ComponentClass; + (component: ComponentClass|StatelessComponent): ComponentClass; } /**