首页 > 解决方案 > 如果类定义了接口类型,如何仅传递选择性道具

问题描述

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 是否与此相关联?

标签: reactjstypescriptreact-native

解决方案


您可以在您的界面中使您的参数成为可选参数,如下所示:

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

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

在此处阅读有关可选参数的更多信息:https ://www.typescriptlang.org/docs/handbook/interfaces.html#optional-properties


推荐阅读