有没有办法将另一个组件附加到已经作为ComponentType键入的组件?
E.g:
type Props = {
name: string,
}
const Header: ComponentType<Props> = ({ props }) => (<h1>{name}</h1>)
const SubHeader: ComponentType<Props> = ({ props }) => (<h2>{name}</h2>)
Header.SubHeader = SubHeader // this is causes a flow error due to ComponentType
这个例子有点人为,但是当使用HOC或ComponentType
时,有时需要手动强制使用styled-components
。
交叉路口将完成这项工作:const Header: ComponentType<Props> & { SubHeader: ComponentType<Props> }
。
请注意,SubHeader
不能是Maybe
或可选类型,因为如果您尝试将Maybe
或可选类型作为组件呈现,Flow会抱怨。