Typescript根据条件导出枚举?

时间:2019-10-28 16:53:25

标签: javascript angular typescript

基于环境的角度我需要导出枚举。我不知道它是否正确吗? role.ts

import { environment } from '../../environments/environment';
if(environment.production) {
  export enum Role {
   User: 'user',
   Admin: 'admin'
  }
 } else {
  export enum Role {
   User: 'user',
   Admin: 'user'
  }
}

基于条件如何导出呢?谢谢

2 个答案:

答案 0 :(得分:1)

您可以这样做:

import { environment } from '../../environments/environment';
export class Role {
  static User = 'user';
  static Role = (environment.production) ? 'role' : 'admin';
}

答案 1 :(得分:0)

类似于这样的字符串

    export enum Role {
       User = 'user',
       Admin = 'admin',
   }

将内置于:

     "use strict";
   Object.defineProperty(exports, "__esModule", { value: true });
   var Role;
   (function (Role) {
       Role["User"] = "user";
       Role["Admin"] = "admin";
   })(Role = exports.Role || (exports.Role = {}));

因此,最终您将看到一个枚举对象。您可以像这样

重写代码
  import { environment } from '../environments/environment';

    export const Roles = getRole();

    function getRole() {
     if (environment.production) {
       return {
         User: 'user',
         Admin: 'admin'
       };
     }

     return {
       User: 'user',
       Admin: 'user'
     };
    }