我是打字稿反应的新手。在我处理这个问题时,我遇到了一个问题,即使用传递给同一组件的另一个道具将道具标记为可选或强制。
就像是
export type abcProps = {
a?:boolean,
b?:boolean
}
如果 b 属性为假,则 a 应该是强制性的,而 a 应该是可选的。我如何做到这一点。
我检查了多个块,但不能理解太多。请帮我解决这个问题。
我是打字稿反应的新手。在我处理这个问题时,我遇到了一个问题,即使用传递给同一组件的另一个道具将道具标记为可选或强制。
就像是
export type abcProps = {
a?:boolean,
b?:boolean
}
如果 b 属性为假,则 a 应该是强制性的,而 a 应该是可选的。我如何做到这一点。
我检查了多个块,但不能理解太多。请帮我解决这个问题。
这将起作用
type MyType = { a: boolean, b: false } | { a?: boolean, b: true }
let foo: MyType = { b: true }
let baz: MyType = { b: false, a: true }
let baz2: MyType = { b: false, a: false }
let shouldError: MyType = { b: false } // compilation error
看游乐场
基本上,您将变量定义为两种类型
b为 false 且a为布尔值的类型b为真并且a是可选的布尔值