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