是否可以让TypeScript声明合并的枚举实现接口?

时间:2017-03-14 17:44:20

标签: typescript enums

让我说我有这个枚举:

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;
}

我的问题是,有什么方法可以让我做一些事情,这样两个枚举都可以通过“实现”接口变成兄弟姐妹吗?

我想使用一些其他泛型类,它需要一个包含位成员的类型,但我希望这个类型是一个枚举。可以实施吗?我是否应该将这些枚举实现为具有静态值的类,这些静态值实现了与静态只读位成员的公共接口?

0 个答案:

没有答案