我使用Link
中的4.0.0-beta.2
组件-它具有一个字段component
-可以覆盖根元素。
我想围绕Link
-MyLink
创建一个包装器,并通过props传递组件:
interface Props {
component: ???
}
const MyLink = ({component}: Props) => {
<MUILink component={component} ... />
}
因此从类型定义中,我没有得到如何构造component
道具的最终类型的方法:
declare const Link: OverridableComponent<{
props: LinkBaseProps & {
TypographyClasses?: TypographyProps['classes'];
underline?: 'none' | 'hover' | 'always';
};
defaultComponent: 'a';
classKey: LinkClassKey;
}>;
和OverridableComponent:
/**
* a component whose root component can be controled via a `component` prop
*
* Adjusts valid props based on the type of `component`
*/
export interface OverridableComponent<M extends OverridableTypeMap> {
<C extends React.ElementType>(props: { component: C } & OverrideProps<M, C>): JSX.Element;
(props: DefaultComponentProps<M>): JSX.Element;
}
有人可以帮我定义component
的类型吗?
答案 0 :(得分:2)
看起来像
interface Props {
component: React.ElementType
}
起到Link
组件的作用。