你能在TypeScript类中设置一个静态enum吗?
Can you set a static enum inside of a TypeScript class?
我想以某种方式能够静态地在我的TypeScript类上设置一个enum,并能够通过导出类在内部和外部引用它。我对TypeScript相当陌生,所以我不确定正确的语法,但下面是一些伪代码(它扩展了骨干模型),我希望能够使用它来实现我需要的…
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
要做到这一点,您需要首先在类外部定义它,然后将其作为静态属性赋值。
enum UNIT_STATUS {
NOT_STARTED,
STARTED,
COMPLETED,
}
class UnitModel extends Backbone.Model {
static UNIT_STATUS = UNIT_STATUS;
isComplete(){
return this.get("status") === UNIT_STATUS.COMPLETED;
}
}
export = UnitModel;
可以在类之后声明名称空间,并在名称空间内声明enum。例如:
class UnitModel extends Backbone.Model {
defaults(): UnitInterface {
return {
status: UNIT_STATUS.NOT_STARTED
};
}
isComplete(){
return this.get("status") === UNIT_STATUS.COMPLETED;
}
complete(){
this.set("status", UNIT_STATUS.COMPLETED);
}
}
namespace UnitModel {
export enum UNIT_STATUS {
NOT_STARTED,
STARTED,
COMPLETED
}
}
export = UnitModel;
那么你可以使用UnitModel.UNIT_STSTUS
来引用你的enum
相关文章:
- 来自文档或下一个静态父级的事件委派
- 使用CloudFront和AmazonS3,或者其他CDN,我可以将所有类似的请求发送到一个静态文件中
- 如何在HTML按钮中有一个静态onclick参数
- 如何通过javascript将值传递给另一个静态页面
- 如何将一个静态
- 设置为具有许多
- 的通用
- 中的最后一个条目
- 三个 j 渲染一个静态场景
- 一个静态 php 变量,只分配一次,永远不会更改
- 有没有办法让嵌入式谷歌地图成为一个静态的不可点击的图像
- 如何在slickgrid中有一个静态索引列
- 在html5中制作一个静态web应用程序,需要一个图像在背景图像中滚动
- 有没有办法得到一个本地图像到一个静态网站没有后端
- 如何使用class.js声明一个静态变量
- jQuery添加动态单元格到一个静态单元格到表格中
- CSS -如何在两个元素之间匹配class(一个动态的和一个静态的)
- 有可能得到一个可调整的“视图”吗?一个静态图像在HTML
- 我需要采取有关动态谷歌地图的数据,并使用API V3从它创建一个静态谷歌地图
- 如何使一个静态旋转木马与不同的图像大小,而不破坏响应
- ES的正确称呼是什么?下一个静态类属性
- 你能在TypeScript类中设置一个静态enum吗?
- 我如何压缩时间和所有插件到一个静态文件