打字稿类型别名允许可选接口

时间:2018-11-06 13:12:54

标签: typescript interface type-alias

我正尝试在我的打字稿代码中创建一个新类型,如下所示:

interface required {
  x: string
}

interface optional1 {
  y: string
}

interface optional2 {
  z: string
}

type combined = required & (optional1 | optional2)

我想要的行为是:

  • 必须明确存在所需接口的属性。
  • 如果还有其他属性,则它们必须符合optional1或optional 2

1 个答案:

答案 0 :(得分:2)

您需要通过在可选接口上使用?来将其标记为可选属性。

如果这样做,除对象被允许具有两者{strong> yz的属性({{1}也是如此) },这让我感到惊讶):

type combined = (required & optional1) | (required  & optional2);

use a simple single threaded Executor