diff --git a/types/react-redux/index.d.ts b/types/react-redux/index.d.ts index b83252a745..7ae0f7ded6 100644 --- a/types/react-redux/index.d.ts +++ b/types/react-redux/index.d.ts @@ -37,7 +37,7 @@ interface AdvancedComponentDecorator { export interface InferableComponentEnhancerWithProps {

( component: Component

- ): ComponentClass & TNeedsProps> + ): ComponentClass & TNeedsProps> & {WrappedComponent: Component

} } // Injects props and removes them from the prop requirements. diff --git a/types/react-redux/react-redux-tests.tsx b/types/react-redux/react-redux-tests.tsx index 5a9b038dc5..64b7b1966d 100644 --- a/types/react-redux/react-redux-tests.tsx +++ b/types/react-redux/react-redux-tests.tsx @@ -569,3 +569,25 @@ namespace TestDispatchToPropsAsObject { const Header = connect(mapStateToProps, dispatchToProps)(HeaderComponent);

} + +namespace TestWrappedComponent { + type InnerProps = { + name: string, + }; + const Inner: React.StatelessComponent = (props) => { + return

{props.name}

; + } + + const mapStateToProps = (state: any) => { + return { + name: "Connected", + }; + }; + const Connected = connect(mapStateToProps)(Inner); + + // `Inner` and `Connected.WrappedComponent` require explicit `name` prop + const TestInner = (props: any) => ; + const TestWrapped = (props: any) => ; + // `Connected` does not require explicit `name` prop + const TestConnected = (props: any) => ; +}