Reactjs 如何在React with TypeScript中只需要一个道具?

Reactjs 如何在React with TypeScript中只需要一个道具?,reactjs,typescript,Reactjs,Typescript,我正在为NPM模块创建打字。如果您遵循链接,您将看到表单组件需要子项或渲染或组件道具。下面是我如何尝试用TS解决的: 导出类型ChildFunction=(props:C)=>React.ReactNode; 导出接口基本FORMPROPS{ //表单道具。。。 } 导出接口ChildrenFormProps扩展了BasicFormProps{ 儿童: |React.React节点 |儿童功能; } 导出接口组件FormProps扩展了MPROPS的基本功能{ 组件:React.Componen

我正在为NPM模块创建打字。如果您遵循链接,您将看到
表单
组件需要
子项
渲染
组件
道具。下面是我如何尝试用TS解决的:

导出类型ChildFunction=(props:C)=>React.ReactNode;
导出接口基本FORMPROPS{
//表单道具。。。
}
导出接口ChildrenFormProps扩展了BasicFormProps{
儿童:
|React.React节点
|儿童功能;
}
导出接口组件FormProps扩展了MPROPS的基本功能{
组件:React.ComponentType;
}
导出接口RenderFormProps扩展了BasicFormProps{
呈现:子函数;
}
导出类型FormProps=ChildrenFormProps | ComponentFormProps | RenderFormProps;

如果我尝试在没有任何道具的情况下调用组件,并说需要
render
prop,则会出现错误。但是,即使我提供了另一个所需的道具(
子道具
组件
),错误也经常持续存在。此外,它看起来不是最有说服力的方法…

您可以使用React PropTypes中的OfType。我认为这会解决问题

在这里查看:

此外,您还可以像下面这样使用:

PropTypes.oneOfType([ 
  PropTypes.instanceOf(ChildrenFormProps),
  PropTypes.instanceOf(ComponentFormProps),
  PropTypes.instanceOf(RenderFormProps)
]);

嗯,我正在寻找完全一样的东西,但在Typescript中…它也可以与Typescript一起工作。!instanceOf中提到的类是Typescript类。