[英]How to set two properties for a React component as optional depending on another property using TypeScript?
我想知道是否可以根据TypeScript中的另一个属性将两个属性设置为可选属性,例如:
如果message
undefined
我希望a
和b
是必需的;如果message
not undefined
我希望a
和b
是可选的。
如何执行此条件?
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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.