reactjs - 在 Typescript 中,如果设置了另一个可选属性,如何使属性成为必需?

标签 reactjs typescript react-props

我不确定,要搜索以下要求的内容。我正在使用以下类型的 react Prop 。

interface ComponentProps {
   message : string,
   minValue? : number,
   minValueValidationMessage? :string
}

现在,我想让 typescript 知道,如果指定了 minValue,那么 minValueValidationMessage 也应该是必需的。

如果指定了minValueValidationMessage,则还应指定minValue

我有很多类似的这样的组合,并且可以以任何排列组合发生。

最佳答案

你可以试试下面这个。

interface ComponentProps {
   message : string,
   min? : {value : number, validationMessage : string},
   max? : {value : number, validationMessage : string},
}

使用 Prop 时可以指定

<Component 
    message={"Hello World"} 
    min={{value:10,vaidationMessage:"Value should be more than 10"}}
/>

如果 {value : number, validationMessage : string} 重复则可以提取到单独的类型。

关于reactjs - 在 Typescript 中,如果设置了另一个可选属性,如何使属性成为必需?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64874558/

相关文章:

reactjs - React Mobx - 商店更改后组件未更新

javascript - Material-ui 自动完成 : Add a value to startAdornment

javascript - React Router v4 中的 indexLink

javascript - 无法使用 Sinon 模拟 Node fs 模块

javascript - 类型错误 : Cannot read property 'length' of undefined in reactjs

node.js - 如何同时运行客户端和服务器代码

javascript - 在 ionic 2 中,有什么方法可以将滚动动量检测为事件吗?

typescript - Vue 3 中的错误 - 类型参数 'typeof import("../dist/vue")' is not assignable to parameter of type ' Public API Component'

javascript - React 中的计时器问题

firebase - 在重新加载应用程序之前更新 firebase 用户图片不呈现新照片