我可以在嵌套enum
内声明namespace
。但无法在class
内完成此操作。
namespace N {
namespace NN {
enum { ONE }; // OK
}
}
namespace N {
class C {
public enum { ONE }; // Error: ';' expected
}
}
正确的语法是什么?
答案 0 :(得分:2)
这不是直接支持的,可以使用声明合并来实现类似的效果,可以将命名空间与类声明合并:
class C {
}
namespace C {
export enum OtherEnum { ONE }; // OK
}
C.OtherEnum.ONE // ok
或者您可以使用自执行功能,但语法更加丑陋:
class C {
public static readonly MyEnum = (function() { enum MyEnum { ONE } return MyEnum })();
}
C.MyEnum.ONE;