enum X {
A = 'x',
B = 'y'
}
type A<T> = {
prop1: T
prop2: ?
}
let r:A<X> = {
prop1: X.A,
prop2: X
}
A.prop2 必须哪种类型才能使 X 且仅 X 可分配给它?
(仅X,我的意思是不使用任何和其他“技巧”)
为了确保只有枚举类型
X
可以分配给 A.prop2
,您可以使用 typeof
运算符来捕获枚举的类型。以下是如何定义 A
来实现此目的:
enum X {
A = 'x',
B = 'y'
}
type A<T> = {
prop1: T
prop2: typeof X
}
let r: A<X> = {
prop1: X.A,
prop2: X
}
在这种情况下,
A.prop2
被定义为typeof X
,这确保只有X
枚举可以分配给它。这样,您就不需要求助于使用 any
或其他解决方法。