Reactjs typescript:在没有默认值的情况下键入可选内容的更好方法?

Reactjs typescript:在没有默认值的情况下键入可选内容的更好方法?,reactjs,typescript,Reactjs,Typescript,我正在用typescript编写react应用程序。 为了提供键入的道具,我使用下面的代码 类型ScheduleBoxContentProps={ 描述:反应节点, 洛蒂:洛蒂道具, }&部分; 如您所见,我希望classNameprop是可选的,但不想为它定义defaultProps。此外,还应提供desc和lottie道具 有没有更好的方法来定义没有默认值的可选 编辑 我很抱歉遗漏了上下文 如果我在自定义道具类型中使用React.FC,则没有问题。因为React.FC在其内部使用Parti

我正在用typescript编写react应用程序。 为了提供键入的道具,我使用下面的代码

类型ScheduleBoxContentProps={
描述:反应节点,
洛蒂:洛蒂道具,
}&部分;
如您所见,我希望
className
prop是可选的,但不想为它定义
defaultProps
。此外,还应提供
desc
lottie
道具

有没有更好的方法来定义没有默认值的可选

编辑 我很抱歉遗漏了上下文

如果我在自定义道具类型中使用
React.FC
,则没有问题。因为
React.FC
在其内部使用
Partial

type MyProps={
类名?:字符串;
}
//没有错误和警告
常量组件:React.FC=(道具)=>;
但是我不希望我的组件接受
子组件
道具。我希望我的组件在
儿童
道具到来时发出警报。因此,我使用下面代码的函数组件

//错误:未提供className的默认值。
常量组件=({className}:MyProps)=>;
它告诉我,
className
的默认值已经定义。我应该明确地定义它。使用下面的代码

Component.defaultProps={className:''};
在我看来,这似乎有点不必要的代码,所以我决定在可选道具上使用
Partial

type MyProps=Partial;
有没有更好的方法来实现这一点?或者,使用
defaultProps
是最佳实践吗?

如何

className?: string;
那怎么办

className?: string;

您只需在属性名称后添加

类型ScheduleBoxContentProps={
描述:反应节点,
洛蒂:洛蒂道具,
//这就是Partial所做的
类名?:字符串,
};
对于您编辑的示例,我认为最简单的是在解构语法中设置默认值:

const-Component=({className=''}:MyProps)=>;

您只需在属性名称后添加

类型ScheduleBoxContentProps={
描述:反应节点,
洛蒂:洛蒂道具,
//这就是Partial所做的
类名?:字符串,
};
对于您编辑的示例,我认为最简单的是在解构语法中设置默认值:

const-Component=({className=''}:MyProps)=>;

很抱歉,缺少上下文。我补充了一些关于我的情况的信息。我用一个可能的解决方案编辑了我的回答。我觉得太复杂了。你用一个基本的句子给我指出了正确的解决方案:)非常感谢!。如果发生这种情况,我会用你的解决方案来制作简单的道具,
Partial
来制作其他复杂的道具。我补充了一些关于我的情况的信息。我用一个可能的解决方案编辑了我的回答。我觉得太复杂了。你用一个基本的句子给我指出了正确的解决方案:)非常感谢!。如果发生这种情况,我会用你的解决方案来制作简单的道具,
Partial
来制作其他复杂的道具。我添加了一些关于我的情况的更多信息。很抱歉缺少上下文。我补充了一些关于我的情况的更多信息。