Can you set a static enum inside of a TypeScript class? Can you set a static enum inside of a TypeScript class? javascript javascript

Can you set a static enum inside of a TypeScript class?


To do this, you would need to define it outside of the class first, then assign it as a static property.

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;


You can declare a namespace right after your class, and declare the enum inside the namespace. For example:

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;

Then you can use UnitModel.UNIT_STSTUS to reference you enum.