打字稿,枚举和字符串
问题描述:
我很难将来自env变量的字符串转换为enum。打字稿,枚举和字符串
这里的枚举:
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);
答
你的代码似乎很好地工作:
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
+0
是的,当我更改 'let str:string = String(process.env.NODE_ENV);' 到 'let str:string = String(“Development”);' 它工作正常。 –
答
从来没有心,当我在命令行定义的环境变量,必须添加了一些空白字符,因为当我改变检索字符串
let str: string = String(process.env.NODE_ENV).replace(" ", "");
它工作正常。
可能的重复[如何将字符串转换为在TypeScript中枚举?](http://stackoverflow.com/questions/17380845/how-to-convert-string-to-enum-in-typescript) – martin
@马丁我使用这种方法 - 从env var创建一个字符串,但是当我尝试检索一个枚举时,我仍然未定义 –