我目前正在编写一个我想与枚举器捆绑的课程。
示例代码:
class MyClass {
static enum MyType {
State1, State2, State3
};
}
这样当我有一些方法foo时,我可以按如下方式定义:
function CreateMyClass(type: MyClass.MyType) {
...
}
也许我没有正确的语法(或者我可能会以错误的方式解决这个问题)?这是可能的,还是有解决方法,以便我不必为静态变量创建接口以接受方法参数中的枚举类型?
答案 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!");
}