基于同级枚举值的属性类型

时间:2018-10-18 09:55:19

标签: typescript

假设我有一个枚举和一个接口

enum A {
   X, Y, Z
}

interface Test {
   a: A
   b: ???
}

b的类型应取决于a的值,并根据B1是否为{{}映射到B2B3a 1}},XY

我想要实现的是,如果我这样定义一个对象,打字稿会抱怨:

Z

1 个答案:

答案 0 :(得分:1)

您可以使用工会...

 type Test = { a: A.X, b: B1 } |
      { a: A.Y, b: B2 } |
      { a: A.Z, b: B3 }