Typescript 基于同级中枚举值的属性类型
假设我有一个枚举和一个接口Typescript 基于同级中枚举值的属性类型,typescript,Typescript,假设我有一个枚举和一个接口 enum A { X, Y, Z } interface Test { a: A b: ??? } b的类型应取决于a的值,并映射到B1、B2、B3,具体取决于a是X、Y还是Z 我想要实现的是,如果我这样定义一个对象,typescript会抱怨: const x: Test = { a: A.X, b: {...} // this should complain if values are not in B1 } 你可以使用unio
enum A {
X, Y, Z
}
interface Test {
a: A
b: ???
}
b的类型应取决于a
的值,并映射到B1
、B2
、B3
,具体取决于a
是X
、Y
还是Z
我想要实现的是,如果我这样定义一个对象,typescript会抱怨:
const x: Test = {
a: A.X,
b: {...} // this should complain if values are not in B1
}
你可以使用union
type Test = { a: A.X, b: B1 } |
{ a: A.Y, b: B2 } |
{ a: A.Z, b: B3 }
你知道我怎样才能让测试成为一个接口而不是一个类型吗?@AndreasHerd我认为还没有办法在接口中实现它。