如果类定义了接口类型,如何仅通过选择性道具

时间:2019-06-05 11:44:23

标签: reactjs typescript react-native

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传递道具呢?是否可以在不创建新界面的情况下实现? 类型脚本中的Patial是否与此相关?

1 个答案:

答案 0 :(得分:1)

您可以像这样在界面中将参数设为可选:

interface INewProps {
    _param_1: boolean,
    _param_2: boolean
    _param_3?: boolean
}

请注意第三个参数上的问号。

在此处详细了解可选参数:https://www.typescriptlang.org/docs/handbook/interfaces.html#optional-properties