Question

Is it in JavaScript allowed to use an Enum to define another Enum?

var VESSEL_DOCUMENT_SUB_TYPE = {
//  PLAN_TYPE           :   {
//      
//  },
    /** @enum {Number} */
    CERTIFICATE_TYPE    :   {
        BUNKER_OIL_POLLUTION_DAMAGE :   CERTIFICATE_TYPE.BUNKER_OIL_POLLUTION_DAMAGE,
        P_I_COE                     :   CERTIFICATE_TYPE.P_I_COE,
        H_M_SINGLE_COVER_NOTE       :   CERTIFICATE_TYPE.H_M_SINGLE_COVER_NOTE
    }/*,
    OTHER               :   {

    }*/
};

var CERTIFICATE_TYPE = {
    /** Bunker Oil Pollution Damage */
    BUNKER_OIL_POLLUTION_DAMAGE :   0,
    /** P&I (COE) */
    P_I_COE                     :   1,
    /** H&M Single Cover Note */
    H_M_SINGLE_COVER_NOTE       :   2
};
Was it helpful?

Solution

Yes, it is allowed. The only problem is, that I get a runtime error, because CERTIFICATE_TYPE should be defined before VESSEL_DOCUMENT_SUB_TYPE

var CERTIFICATE_TYPE = {
    /** Bunker Oil Pollution Damage */
    BUNKER_OIL_POLLUTION_DAMAGE :   0,
    /** P&I (COE) */
    P_I_COE                     :   1,
    /** H&M Single Cover Note */
    H_M_SINGLE_COVER_NOTE       :   2
};

var VESSEL_DOCUMENT_SUB_TYPE = {
//  PLAN_TYPE           :   {
//      
//  },
    /** @enum {Number} */
    CERTIFICATE_TYPE    :   {
        BUNKER_OIL_POLLUTION_DAMAGE :   CERTIFICATE_TYPE.BUNKER_OIL_POLLUTION_DAMAGE,
        P_I_COE                     :   CERTIFICATE_TYPE.P_I_COE,
        H_M_SINGLE_COVER_NOTE       :   CERTIFICATE_TYPE.H_M_SINGLE_COVER_NOTE
    }/*,
    OTHER               :   {

    }*/
};
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top