From 556d60bc1795a60dea102799feec5c0024493f54 Mon Sep 17 00:00:00 2001 From: Alec Merdler Date: Mon, 11 Sep 2017 10:29:58 -0400 Subject: [PATCH 1/2] added WrappedComponent to return type of InferableComponentEnhancerWithProps --- types/react-redux/index.d.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/types/react-redux/index.d.ts b/types/react-redux/index.d.ts index 44c18a91a5..3c71e78500 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. From 5e673b9dfaef4cc61a3b4dcf0df7faa1d8e051a8 Mon Sep 17 00:00:00 2001 From: Alec Merdler Date: Tue, 12 Sep 2017 10:51:51 -0400 Subject: [PATCH 2/2] added test for WrappedComponent --- types/react-redux/react-redux-tests.tsx | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/types/react-redux/react-redux-tests.tsx b/types/react-redux/react-redux-tests.tsx index e369003434..147a800d67 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) => ; +}