将扩展类型道具扩展到Typescript界面

将扩展类型道具扩展到Typescript界面,typescript,typescript-typings,typescript-generics,Typescript,Typescript Typings,Typescript Generics,我有以下接口: 界面按钮操作{ 名称:字符串; } 界面图标按钮道具{ 名称:字符串; 图标:字符串; }如果使用何种TS实体(类型或接口)没有意义,则可以将其键入类型而不是接口: type MyGenericComponentProps<T> = { component: React.FC<T>; } & { [key in keyof T]: T[key]; } 类型MyGenericComponentProps={ 成分:React.FC; }

我有以下接口:

界面按钮操作{
名称:字符串;
}
界面图标按钮道具{
名称:字符串;
图标:字符串;

}
如果使用何种TS实体(类型或接口)没有意义,则可以将其键入类型而不是接口:

type MyGenericComponentProps<T> = {
  component: React.FC<T>;
} & {
  [key in keyof T]: T[key];
}
类型MyGenericComponentProps={
成分:React.FC;
} & {
[key in keyof T]:T[key];
}
[更新]:

您需要修改甚至简化一些片段:

type MyGenericComponentProps<T> = {
  component: React.FC<T>;
  props: T; 
}

const MyGenericComponent = <T extends object>({component: Component, props}: MyGenericComponentProps<T>) => {
  // ... more code here
  return <Component {...props}/>;
};
类型MyGenericComponentProps={
成分:React.FC;
道具:T;
}
常量MyGenericComponent=({component:component,props}:MyGenericComponentProps)=>{
//…这里有更多代码
返回;
};

接口MyGenericComponentProps{
成分:React.FC;
}

不知道react,但使用typescript可以扩展接口和声明可选属性。那么这将接受按钮按钮和图标按钮道具

谢谢。问题是,在尝试实现
MyGenericComponent
之后,我得到了以下错误:类型“Pick”不可分配给类型“intrinsicatAttributes&T&{children?:ReactNode;}”。类型“Pick”不可分配给类型“T”“Pick”可分配给类型为“T”的约束,但“T”可以用约束“MyGenericComponentProps”的不同子类型实例化。ts(2322)仅供参考,我试图在
MyGenericComponent
中执行的操作是
let Component=Component
然后
,由此我得到上述错误。请,演示如何定义
MyGenericComponent
。我刚刚更新了问题以共享完整的定义。提前谢谢。谢谢,但是这样我就没有
道具作为接口属性本身的一部分了。我不想在
props
对象中传递道具,而是直接传递。
interface ButtonProps {
  name: string;
}

interface IconButtonProps extends ButtonProps{
  icon?: string;
}
interface MyGenericComponentProps<IconButtonProps>{
  component: React.FC<IconButtonProps>;
}