В Typescript 2.4+ вы можете иметь тип enum и пространство имен, объявленные под тем же именем.В пространстве имен вы можете писать статические функции.
export enum Foo {
...
}
export namespace Foo {
export const getAllEnumTypes = (): Foo[] => {
return Object.keys(Foo)
.map((key) => Foo[key]));
};
Таким образом, приведенный выше оператор кода возвращает все члены перечисления Foo, но также и функцию getAllEnumTypes()
в качестве члена.Как мы можем предотвратить это?