0

我是打字稿反应的新手。在我处理这个问题时,我遇到了一个问题,即使用传递给同一组件的另一个道具将道具标记为可选或强制。

就像是

export type abcProps = {
a?:boolean,
b?:boolean
}

如果 b 属性为假,则 a 应该是强制性的,而 a 应该是可选的。我如何做到这一点。

我检查了多个块,但不能理解太多。请帮我解决这个问题。

4

1 回答 1

0

这将起作用

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是可选的布尔值
于 2020-09-17T14:45:40.990 回答