有没有办法在类上放置静态枚举?

时间:2014-02-04 19:05:15

标签: typescript

我目前正在编写一个我想与枚举器捆绑的课程。

示例代码:

class MyClass {
    static enum MyType {
        State1, State2, State3
    };
}

这样当我有一些方法foo时,我可以按如下方式定义:

function CreateMyClass(type: MyClass.MyType) {
   ...
}

也许我没有正确的语法(或者我可能会以错误的方式解决这个问题)?这是可能的,还是有解决方法,以便我不必为静态变量创建接口以接受方法参数中的枚举类型?

2 个答案:

答案 0 :(得分:1)

您无法在类中定义枚举,但您可以将其添加到其他位置并在类中使用它。

enum MyType {
    State1, State2, State3
};

class MyClass {
    constructor(private type: MyType) {

    }
}

var myInstance = new MyClass(MyType.State2);

答案 1 :(得分:1)

模块怎么样?

module M {
    export enum MyType {
        State1, State2, State3
    };

    export class MyClass {
        constructor(param: string) {
            alert(param);
        }
    }
}

function CreateMyClass(type: M.MyType): M.MyClass {
    if (type === M.MyType.State1)
        return new M.MyClass("Hi!");
    else
        return new M.MyClass("Hello!");
}