我希望能够以某种方式在我的TypeScript类上静态设置一个枚举,并能够通过导出该类在内部和外部引用它。我对TypeScript相当陌生,所以我不确定语法是否正确,但下面是一些伪代码(扩展了一个 Backbone 模型),我希望能够使用它们来实现我所需要的...
class UnitModel extends Backbone.Model {
static enum UNIT_STATUS {
NOT_STARTED,
STARTED,
COMPLETED
}
defaults(): UnitInterface {
return {
status: UNIT_STATUS.NOT_STARTED
};
}
isComplete(){
return this.get("status") === UNIT_STATUS.COMPLETED;
}
complete(){
this.set("status", UNIT_STATUS.COMPLETED);
}
}
export = UnitModel;
我需要能够在这个类的内部引用枚举,但我也需要能够在类的外部引用枚举,如下所示:
import UnitModel = require('path/to/UnitModel');
alert(UnitModel.UNIT_STATUS.NOT_STARTED);//expected to see 0 since enums start at 0
2条答案
按热度按时间ctzwtxfj1#
若要这样做,您必须先在类别之外定义它,然后将它指派为静态属性。
mklgxw1f2#
您可以在类别之后宣告命名空间,并在命名空间内宣告枚举。例如:
然后,您可以使用
UnitModel.UNIT_STSTUS
来引用枚举。