Teal TealUI

枚举util/enum

枚举即用字段名代替难记的数值。定义枚举可增加代码的可读性。

定义枚举
枚举标记位
API

定义枚举

var WeekDay = { 
    sunday: 0,
    monday: 1,
    tuesday: 2,
    wednesday: 3,
    thirsday: 4,
    friday: 5,
    saturday: 6
};

if (new Date().getDay() === WeekDay.sunday) {
    console.log("今天是星期天哦");
}

枚举标记位

通过位操作将多个标记存在同一个数值中。

var Colors = {
    red: 1 << 0,
    yellow: 1 << 1,
    blue: 1 << 2
};
var green = Colors.red | Colors.yellow;

API

函数 描述
getName(enumType, enumValue)(enumType:any, enumValue:number):string

根据枚举值返回对应的枚举名。

参数 类型 描述 默认值
enumType* any
enumValue* number

返回值

类型:string

返回枚举名。如果枚举值是多个标记位的组合,则返回以“|”分割的所有枚举名。如果找不到匹配的枚举名则返回 undefined。

示例

getName({sunday: 0}, 0) // "sunday"

根据枚举值返回对应的枚举名。

getNames(enumType)(enumType:object):string[]

获取枚举类型中定义的字段。

参数 类型 描述 默认值
enumType* object

返回值

类型:string[]

返回所有键组成的数组。

获取枚举类型中定义的字段。

hasFlag(enumValue, flag)(enumValue:number, flag:number):boolean

判断枚举值是否包含指定的标记位。

参数 类型 描述 默认值
enumValue* number
flag* number

返回值

类型:boolean

如果枚举值包含所有标记位则返回 true,否则返回 false。

示例

var Colors = {
red: 1 << 1,
yellow: 1 << 2,
blue: 1 << 3,
};
var green = Colors.red | Colors.yellow;
hasFlag(green, Colors.red); // true

判断枚举值是否包含指定的标记位。

setFlag(enumValue, flag, value)(enumValue:number, flag:number, value:boolean):number

设置枚举值的标记位。

参数 类型 描述 默认值
enumValue* number
flag* number
value* boolean

返回值

类型:number

返回新枚举值。

示例

var Colors = {
red: 1 << 1,
yellow: 1 << 2,
blue: 1 << 3,
};
var color = Colors.red;
color = setFlag(color, Colors.yellow, true); // Colors.red | Colors.yellow

设置枚举值的标记位。