gpt4 book ai didi

javascript - 在命名空间中没有静态函数的情况下迭代枚举

转载 作者:行者123 更新时间:2023-12-04 16:52:08 24 4
gpt4 key购买 nike

在 Typescript 2.4+ 中,您可以在同名下声明一个枚举类型和命名空间。在命名空间中,您可以编写静态函数。

export enum Foo {
...
}

export namespace Foo {
export const getAllEnumTypes = (): Foo[] => {
return Object.keys(Foo)
.map((key) => Foo[key]));
};


所以上面的代码语句返回 Foo 枚举的所有成员,还有 getAllEnumTypes()也可以作为成员(member)使用。我们如何防止这种情况发生?

最佳答案

您可以使用 typeof 过滤掉所有函数运算符(operator):

return Object.keys(Foo)
.map((key) => Foo[key])
.filter((value) => typeof value !== 'function'));

关于javascript - 在命名空间中没有静态函数的情况下迭代枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56380712/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com