如何在typescript中声明类中的枚举?

时间:2018-06-13 09:32:37

标签: typescript syntax enums compiler-errors namespaces

我可以在嵌套enum内声明namespace。但无法在class内完成此操作。

namespace N {
  namespace NN {
    enum { ONE };  // OK
  }
}

namespace N {
  class C {
    public enum { ONE };  // Error: ';' expected
  }
}

正确的语法是什么?

1 个答案:

答案 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;