概述
针对 TypeScript 中的枚举(Enum)及常量对象(Const Object),本插件提供了深度集成的鼠标悬停(Hover)扩展功能。它可以自动识别代码结构,生成业务中常用的映射对象与选项列表,并能自动修复代码中的规范遗漏。
使用方法
- 悬浮激活:将鼠标悬停在
enum或const定义的名称(如EMediaType)上。 - 点击修复:在浮窗中点击
✨ 生成枚举转换。 - 即刻完成:插件将分析 AST,在定义及其相关声明下方精准插入所需的类型、Map 和 Options。

核心特性
(推荐)方式一. 常量对象
完美支持现代 TypeScript 推荐的 const object 模式。你可以编写一个常量对象作为枚举的基础,插件会自动解析对象属性及其 JSDoc 注释或单行注释。
支持格式:
ts
export const EMediaType = {
/** 图片 */
image: 'image',
/** 视频 */
video: 'video'
} as const方式二. 传统枚举
将标准的 enum 定义转换为 Map 和 Options 数组,省去手动编写 Label 的繁琐过程。
原始代码:
ts
export enum ECodeScene {
/** 注册 */
REG = 'REG',
/** 忘记密码 */
FORGOT = 'FORGOT'
}智能修复与类型补全
插件在执行转换时,会智能检查当前定义的完整性,并在生成转换代码的同时一键修复:
- 补全
as const:如果常量对象漏写了as const,插件将自动在对象末尾添加,确保类型推导为精确的字面量。 - 补全
type声明:对于常量对象,若缺失联合类型声明,插件会自动插入:export type EName = (typeof EName)[keyof typeof EName] - 智能防重:自动检测是否已生成过转换代码,避免重复插入。
- 缩进适配:自动识别编辑器当前的缩进配置(Space/Tab),生成代码与原文件风格完美融合。
示例结果
如果你写了一段不规范或不完整的代码:
ts
export const EStatus = {
/** 成功 */
success: 1,
/** 失败 */
fail: 0
}执行插件后将自动变为:
ts
export const EStatus = {
/** 成功 */
success: 1,
/** 失败 */
fail: 0
} as const // <- 自动补全
// 自动补全类型别名
export type EStatus = (typeof EStatus)[keyof typeof EStatus]
/** 键值对映射 */
export const MStatus = {
[EStatus.success]: '成功',
[EStatus.fail]: '失败'
}
/** 下拉选项 */
export const OStatus = [
{ value: EStatus.success, label: '成功' },
{ value: EStatus.fail, label: '失败' }
]