diff --git a/packages/react/types/helper.d.ts b/packages/react/types/helper.d.ts index 040c40c1d..a2fc9b472 100644 --- a/packages/react/types/helper.d.ts +++ b/packages/react/types/helper.d.ts @@ -2,6 +2,7 @@ import * as React from 'react' /** * @desc Utility type for getting props type of React component. + * It takes `defaultProps` into an account - making props with defaults optional. */ export type PropsOf< C extends keyof JSX.IntrinsicElements | React.JSXElementConstructor diff --git a/packages/styled/types/base.d.ts b/packages/styled/types/base.d.ts index 672915089..31c61be2f 100644 --- a/packages/styled/types/base.d.ts +++ b/packages/styled/types/base.d.ts @@ -105,7 +105,7 @@ export interface CreateStyled { > = keyof React.ComponentProps >( component: C, - options: FilteringStyledOptions, ForwardedProps> + options: FilteringStyledOptions, ForwardedProps> ): CreateStyledComponent< Pick, ForwardedProps> & { theme?: Theme @@ -115,7 +115,7 @@ export interface CreateStyled { >>( component: C, - options?: StyledOptions> + options?: StyledOptions> ): CreateStyledComponent< PropsOf & { theme?: Theme diff --git a/packages/styled/types/tests-base.tsx b/packages/styled/types/tests-base.tsx index 71fa346c8..ddae92bf4 100644 --- a/packages/styled/types/tests-base.tsx +++ b/packages/styled/types/tests-base.tsx @@ -432,3 +432,13 @@ const Section = styled('section')` ` ; ; + +{ + const MemoedComponent = React.memo((_props: { foo: string }) => { + return null + }) + const StyledMemoedComponent = styled(MemoedComponent)() + ; + // $ExpectError + ; +}