diff --git a/packages/styled-base/src/index.js b/packages/styled-base/src/index.js index b5cd64eb3..8a688c123 100644 --- a/packages/styled-base/src/index.js +++ b/packages/styled-base/src/index.js @@ -77,6 +77,7 @@ let createStyled: CreateStyled = (tag: any, options?: StyledOptions) => { } } + // $FlowFixMe: we need to cast StatelessFunctionalComponent to our PrivateStyledComponent class const Styled: PrivateStyledComponent
= withEmotionCache( (props, context, ref) => { return ( @@ -201,7 +202,7 @@ let createStyled: CreateStyled = (tag: any, options?: StyledOptions) => { ) { return 'NO_COMPONENT_SELECTOR' } - // $FlowFixMe + // $FlowFixMe: coherce undefined to string return `.${targetClassName}` } }) diff --git a/packages/styled-base/src/utils.js b/packages/styled-base/src/utils.js index 6a4d36195..6e4ac85fd 100644 --- a/packages/styled-base/src/utils.js +++ b/packages/styled-base/src/utils.js @@ -46,5 +46,6 @@ export type CreateStyledComponent =
(
export type CreateStyled = {
(tag: React.ElementType, options?: StyledOptions): CreateStyledComponent,
- [key: string]: CreateStyledComponent
+ [key: string]: CreateStyledComponent,
+ bind: () => CreateStyled
}
diff --git a/packages/styled/flow-tests/flow.js b/packages/styled/flow-tests/flow.js
new file mode 100644
index 000000000..0754fdc58
--- /dev/null
+++ b/packages/styled/flow-tests/flow.js
@@ -0,0 +1,13 @@
+// @flow
+import * as React from 'react'
+import styled from '../src'
+
+type Props = { color: string }
+const Foo = styled.div