【问题标题】:Typescript, enums and string打字稿、枚举和字符串
【发布时间】:2016-11-08 13:55:53
【问题描述】:

我很难将来自 env 变量的字符串转换为枚举。

这是枚举:

enum Environment {
    Test = 1,
    Development,
    Production
}

export default Environment;

这是我一直在尝试的:

export default class GlobalParameters {
    public static Env: Environment = Environment[<string>process.env.NODE_ENV];
}
console.log(process.env.NODE_ENV) // Gives "Development"
let str = String(process.env.NODE_ENV); // Gives "Development"
console.log(Environment[str])  //Gives undefined
Object.seal(GlobalParameters);

【问题讨论】:

标签: string typescript enums


【解决方案1】:

您的代码似乎运行良好:

enum Environment {
    Test = 1,
    Development,
    Production
}

console.log(Environment[2]) // "Development"
let str = String(Environment[2]);
console.log(str); // "Development"
console.log(Environment[str]) // 2

(code in playground)

【讨论】:

  • 是的,当我将 let str: string = String(process.env.NODE_ENV); 更改为 let str: string = String("Development"); 时,它工作正常。
【解决方案2】:

没关系,当我在命令行中定义环境变量时,它肯定添加了一些空白字符,因为当我将检索字符串更改为

let str: string = String(process.env.NODE_ENV).replace(" ", "");

效果很好。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-10-23
    • 2017-06-08
    • 1970-01-01
    • 2021-04-19
    • 1970-01-01
    • 2020-04-30
    • 2019-10-30
    • 2020-07-11
    相关资源
    最近更新 更多