使用Javascript 创建枚举类型(enum)
1. 枚举类型的定义
是指将变量的值一一列出来,变量的值只限于列举出来的值的范围内。
2. typescript中的枚举类型
enum Role{
ADMIN,
VISITER,
EMPLOYEE
}
编译成ES5后的代码为
var Role;
(function (Role) {
Role[Role["ADMIN"] = 0] = "ADMIN";
Role[Role["VISITER"] = 1] = "VISITER";
Role[Role["EMPLOYEE"] = 2] = "EMPLOYEE";
})(Role || (Role = {
}));
3. javascript模拟生成enum枚举类型
//使用ES6语法
class Enum
{
constructor(arg)
{
const obj = {
}
if (Object.prototype.toString.call(arg).slice(8, -1) === "Object") {
Object.entries(arg).forEach(([k, v]) => obj[obj[k] = v] = k)
} else if (Array.isArray(arg)) {
arg.forEach((v, index) => obj[obj[v] = index] = v)
} else {
throw new TypeError('class Enum should receive a plain object or a array')
}
return obj
}
}
接收字符串数组为参数:
接收普通对象为参数:
读者可自行使用ES5语法进行尝试。