在Typescript 2.4+中,您可以使用相同的名称声明一个枚举类型和名称空间。在命名空间中,您可以编写静态函数。
export enum Foo {
...
}
export namespace Foo {
export const getAllEnumTypes = (): Foo[] => {
return Object.keys(Foo)
.map((key) => Foo[key]));
};
因此,以上代码语句返回Foo枚举的所有成员,还返回getAllEnumTypes()
函数作为成员。我们如何防止这种情况发生?
答案 0 :(得分:0)
您可以使用typeof
运算符过滤掉所有功能:
return Object.keys(Foo)
.map((key) => Foo[key])
.filter((value) => typeof value !== 'function'));