# AirPower-Enum
**Repository Path**: air-power/AirPower-Enum
## Basic Information
- **Project Name**: AirPower-Enum
- **Description**: 🔥🔥🔥AirPower-Enum 是一个基于 TypeScript 的封装的类似 Java 枚举类的枚举字典处理工具。
- **Primary Language**: TypeScript
- **License**: MIT
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 1
- **Forks**: 0
- **Created**: 2025-04-28
- **Last Updated**: 2025-11-26
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
Github /
Gitee /
NPM
## 🎉 项目介绍
**AirPower-Enum** 是一个基于 `TypeScript` 的封装的类似 `Java` 枚举类的枚举字典处理工具。
## 💻 如何安装
```shell
npm install @airpower/enum
# or
yarn add @airpower/enum
# or
cnpm install @airpower/enum
# or ...
```
## 📖 如何使用
```ts
import type {EnumConstructor} from './enum'
import {Enum} from './enum'
// 普通数字枚举
class UserStatus extends Enum {
static readonly NORMAL = new UserStatus(0, '正常')
static readonly DISABLED = new UserStatus(1, '禁用')
}
// 字符串枚举(支持数字、字符串、布尔值)
class UserGender extends Enum {
static readonly MALE = new UserGender('MALE', '男')
static readonly FEMALE = new UserGender('FEMALE', '女')
}
// 扩展自定义属性
class Platform extends Enum {
static readonly MAC = new Platform(1, 'mac', 'apple.png')
static readonly WINDOWS = new Platform(2, 'windows', 'windows.png')
static readonly ANDROID = new Platform(3, 'android', 'android.png')
// 自定义属性
icon!: string
// 1. 通过构造初始化(此时可以设置icon为readonly)
constructor(key: number, label?: string, icon?: string) {
super(key, label)
if (icon) {
this.icon = icon
}
}
// 2. 通过 set 方法初始化
setIcon(icon: string) {
this.icon = icon
return this
}
static getIcon(this: EnumConstructor, key: number) {
return this.get(key)!.icon
}
}
console.warn(Platform.getIcon(1))
console.warn(Platform.MAC.icon)
console.warn(Platform.MAC.equalsKey(2))
```
## ⏰ 欢迎反馈
如有疑问,可以通过本仓库的 **Issues** 与我们联系,如果你有一些代码贡献,可以通过 **Pull Request** 将代码贡献,为这个项目添砖加瓦。
如果有更多的需求和建议,欢迎通过本仓库的 `Issues` 提出,也欢迎加入 QQ群 555156313 与我们及时反馈。