在项目中写一个高阶组件时,为其定义了ts类型,但是在做props参数的泛型定义时却犯了难,不知道在哪里定义。请大佬们指教一番
interface BaseType {
className?: string
styles?: CSSProperties
}
type WrapperType = (Component: FC<BaseType>) => <T>(props: T) => JSX.Element
const Wrapper: WrapperType = (Component) => (props) => {
return (
<>
<Component {...props} />
</>
)
}
const A = Wrapper((props) => {
return (
<div></div>
)
})
const B = Wrapper((props) => {
return (
<div></div>
)
})
// 调用
return (
<>
<A XX={xx} XXX={xxx} />
</>
)
实现的高阶组件大概如上。想实现的功能是高阶组件(Wrapper)
接受一部分通用参数,其余的在A组件
和B组件
自身定义 想到了可以通过泛型实现。但是对ts
理解还不够透彻 写不明白 求指教
没用jsx但是大概就是这样,在线例子
其实要做的就是获取传入组件的参数类型,并且在其基础上新增类型
而
Parameters
高阶类型就可以获取到 一个函数的参数类型