Javascript 如何从另一个组件复制属性的流类型?
我正在创建一个组件,它封装了另一个名为Javascript 如何从另一个组件复制属性的流类型?,javascript,reactjs,flowtype,Javascript,Reactjs,Flowtype,我正在创建一个组件,它封装了另一个名为按钮的组件按钮在库中定义,该库不导出按钮属性的类型 要正确键入我的组件,最好复制按钮的属性类型,向该类型添加一些属性(使用typeof,$Diff或类似的属性),并将其用作我的组件类型样式按钮 比如: type AddedPropsT = { isStyled: boolean, } function StyledButton(props: $GenericParam(typeof Button) & AddedPropsType) { r
按钮的组件<代码>按钮
在库中定义,该库不导出按钮属性的类型
要正确键入我的组件,最好复制按钮的属性类型,向该类型添加一些属性(使用typeof
,$Diff
或类似的属性),并将其用作我的组件类型样式按钮
比如:
type AddedPropsT = {
isStyled: boolean,
}
function StyledButton(props: $GenericParam(typeof Button) & AddedPropsType) {
return (<Button ...props className={isStyled ? "StyleClass" : ""} />)
}
类型AddedPropsT={
isStyled:布尔,
}
函数StyledButton(道具:$GenericParam(按钮类型)和AddedPropsType){
返回()
}
当然,流中不存在类型util$GenericParam
。按钮
的类型是(问题是如何从那里获得道具
类型),在幕后它是纯函数无状态组件 您可以使用实用程序类型获取按钮的道具类型:
type AddedProps = {
isStyled: boolean,
}
function StyledButton(props: React.ElementConfig<typeof Button> & AddedProps) {
return (<Button {...props} className={props.isStyled ? "StyleClass" : ""} />)
}
类型AddedProps={
isStyled:布尔,
}
函数样式按钮(道具:React.ElementConfig和addedrops){
返回()
}
我认为没有任何方法可以提取泛型参数。看起来会非常有用。创建这个:@雅各布谢谢雅各布,我不确定,我是新来的。对,这将是非常有用的,所以感谢您创建的问题。希望它能很快被注意到。