reactjs - 如果类定义了接口类型,如何仅传递选择性道具
问题描述
interface INewProps {
_param_1: boolean,
_param_2: boolean
_param_3: boolean
}
class TestClass extends React.Component<INewProps, IState>{
constructor(props: IProps) {
super(props)
this.state = {}
}
render() {
return (<Text></Text>)
}}
如果我称它为有效,但是;
<TestClass
_param_1={false}
_param_2={false}/>
如果我称它为有效,但我在编辑器中的 TSLint 说
Property '_param_3' is missing in type '{ _param_1: false; _param_2: false; }' but required in type 'Readonly<INewProps>'.ts(2741)
SideControl.tsx(89, 5): '_param_3' is declared here.
我只需要传递 2 个道具,有什么解决方法吗?这是我需要遵循的正确方式吗?
其他类使用此接口传递 3 个道具。那么我如何设法通过 2 传递道具?如果不创建新界面,这可能吗?类型脚本中的 Patials 是否与此相关联?
解决方案
您可以在您的界面中使您的参数成为可选参数,如下所示:
interface INewProps {
_param_1: boolean,
_param_2: boolean
_param_3?: boolean
}
注意第三个参数上的问号。
在此处阅读有关可选参数的更多信息:https ://www.typescriptlang.org/docs/handbook/interfaces.html#optional-properties
推荐阅读
- firebase - 最实用的 Firestore 监听器:每条路径多个,还是一个做多个工作?
- scala - java.nio.file.NoSuchFileException:/home/jovyan/work/source/load-ivy.sc
- java - Springboot 堆栈跟踪日志过滤器仅来自我的包
- mysql - logstash的JDBC输入插件可以做多个sql任务吗?
- unity3d - Unity 2D 背景不适合
- linux - 神经项目电路 SPI 时钟未初始化
- django - django-celery vs django-celery-beat 与 Django 2.2
- opencv - 无法导入 oenvino 的 opencv
- android - 未来
在 Flutter 中转为 Base64 或 PNG - html - HTML – 在多个框架中选择多个文本