让我说我有这个枚举:
enum SomeEnum {
A = 0,
B = 1,
C = 2,
D = 3
}
我以这种方式使用declaration merging向SomeEnum添加了一个名为bits的成员:
namespace SomeEnum {
readonly bits: number = 2;
}
为了说清楚,bits是SomeEnum的值所包含的位数。 现在,假设我有另一个枚举,OtherEnum,具有不同的值,但也有一个名为bits的成员。
enum OtherEnum {
X = 0,
Y = 1
}
namespace OtherEnum {
readonly bits: number = 1;
}
正如您所看到的,它们都是带有位成员的枚举。因此,我希望能够创建一个基本接口,HasBits,其唯一的成员是位,并且两个枚举“实现”。
interface HasBits {
bits: number;
}
我的问题是,有什么方法可以让我做一些事情,这样两个枚举都可以通过“实现”接口变成兄弟姐妹吗?
我想使用一些其他泛型类,它需要一个包含位成员的类型,但我希望这个类型是一个枚举。可以实施吗?我是否应该将这些枚举实现为具有静态值的类,这些静态值实现了与静态只读位成员的公共接口?