gpt4 book ai didi

javascript - 如何根据使用 TypeScript 的另一个属性将 React 组件的两个属性设置为可选?

转载 作者:搜寻专家 更新时间:2023-10-30 21:22:10 30 4
gpt4 key购买 nike

我想知道是否可以根据 TypeScript 中的另一个属性将两个属性设置为可选,例如:

如果 messageundefined 我想要 ab 是必需的,如果 messagenot undefined 我希望 ab 是可选的。

如何强制执行此条件?

type Props = Readonly<{
message?: React.ReactNode
a: React.ReactNode
b: React.ReactNode
}>

const Component = ({ message, a, b}: Props) => <div >

最佳答案

您可以使用联合类型来实现此效果:

type Props = Readonly<{
message?: undefined
a: string
b: string
} | {
message: string
a?: string
b?: string
}>

const Component = ({ message, a, b}: Props) => <div />;

let c = <Component message="" /> //ok
let c2 = <Component a="" b="" /> //ok
let c3 = <Component message="" b="" /> //ok
let c4 = <Component /> //error as expected

关于javascript - 如何根据使用 TypeScript 的另一个属性将 React 组件的两个属性设置为可选?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50600963/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com