打字稿,枚举和字符串

时间:2016-11-08 13:55:54

标签: string typescript enums

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

这是枚举:

        export class UsernameValidator {   
            static usernameTaken(control: FormControl): Promise<ValidationResult> {
                return new Promise((resolve, reject) => {
                    setTimeout(() => {          
                        //How Can i use github Api like this: 
                        // if (control.value === "this._http.get('http://api.github.com/users/'+this.username)")) {
                        if (control.value === "David") {
                            console.log('username taken')
                            resolve({"usernameTaken": true})
                        } else {

                            resolve(null);
                        };                
                    }, 1000);
                });

            }
        }

这就是我一直在尝试的事情:

enum Environment {
    Test = 1,
    Development,
    Production
}

export default Environment;

2 个答案:

答案 0 :(得分:0)

您的代码似乎运行良好:

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

答案 1 :(得分:0)

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

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

工作正常。