枚举相关工具方法
> 枚举相关工具方法
``sh
pnpm add @shencom/utils
pnpm add @shencom/utils-enum
`
`ts`
import { EnumToEntries, EnumToKeyArray, EnumToObject, EnumToOptions, EnumToValueArray, IsValidEnumValue } from '@shencom/utils';
// import { EnumToObject, EnumToKeyArray, EnumToValueArray, EnumToEntries, EnumToOptions, IsValidEnumValue } from '@shencom/utils-enum';
EnumToObject
- 说明: 将枚举对象转换为普通对象,同时创建反向映射(值到键的映射),支持字符串和数字类型枚举
- 类型: enumObj
- 参数:
- - 需要转换的枚举对象`
- 示例:
ts
enum StringEnum {
A = 'a',
B = 'b',
C = 'c',
}
enum NumberEnum {
One = 1,
Two = 2,
Three = 3,
}
EnumToObject(StringEnum);
// { A: 'a', B: 'b', C: 'c', a: 'A', b: 'B', c: 'C' }
EnumToObject(NumberEnum);
// { One: 1, Two: 2, Three: 3, '1': 'One', '2': 'Two', '3': 'Three' }
`
EnumToKeyArray
- 说明: 将枚举对象的键转换为数组
- 类型: enumObj
- 参数:
- - 需要转换的枚举对象`
- 示例:
ts
EnumToKeyArray(StringEnum);
// ['A', 'B', 'C']
EnumToKeyArray(NumberEnum);
// ['One', 'Two', 'Three']
`
EnumToValueArray
- 说明: 将枚举对象的值转换为数组
- 类型: enumObj
- 参数:
- - 需要转换的枚举对象`
- 示例:
ts
EnumToValueArray(StringEnum);
// ['a', 'b', 'c']
EnumToValueArray(NumberEnum);
// [1, 2, 3]
`
EnumToEntries
- 说明: 将枚举对象转换为键值对数组
- 类型: enumObj
- 参数:
- - 需要转换的枚举对象`
- 示例:
ts
EnumToEntries(StringEnum);
// [['A', 'a'], ['B', 'b'], ['C', 'c']]
EnumToEntries(NumberEnum);
// [['One', 1], ['Two', 2], ['Three', 3]]
`
EnumToOptions
- 说明: 将枚举对象转换为适用于表单控件的选项列表
- 类型: enumObj
- 参数:
- - 需要转换的枚举对象labelFormatter
- - 可选的标签格式化函数`
- 示例:
ts
EnumToOptions(StringEnum);
// [
// { label: 'A', value: 'a' },
// { label: 'B', value: 'b' },
// { label: 'C', value: 'c' }
// ]
EnumToOptions(NumberEnum);
// [
// { label: 'One', value: 1 },
// { label: 'Two', value: 2 },
// { label: 'Three', value: 3 }
// ]
EnumToOptions(StringEnum, (key, value) => ${key} (${value}));`
// [
// { label: 'A (a)', value: 'a' },
// { label: 'B (b)', value: 'b' },
// { label: 'C (c)', value: 'c' }
// ]
IsValidEnumValue
- 说明: 检查值是否为枚举的有效值
- 类型: enumObj
- 参数:
- - 枚举对象value
- - 要检查的值`
- 示例:
ts
IsValidEnumValue(StringEnum, 'a'); // true
IsValidEnumValue(StringEnum, 'd'); // false
IsValidEnumValue(NumberEnum, 1); // true
IsValidEnumValue(NumberEnum, 4); // false
``