@sheng/no-template-enum-member-alias
提示 Vue template 可以直接使用 script setup 里的 enum member,不需要额外声明一比一中转常量。
所属 config
enum-public-api:公开字符串调用面里的 enum 使用边界。
提示 Vue template 可以直接使用 <script setup> 里的 enum member,不需要额外声明一比一中转常量。
错误示例
vue
<script setup lang="ts">
const enum DialogMode {
Confirm = 'confirm',
}
const confirmMode = DialogMode.Confirm
</script>
<template>
<CommonDialog :mode="confirmMode" />
</template>正确示例
vue
<script setup lang="ts">
const enum DialogMode {
Confirm = 'confirm',
}
</script>
<template>
<CommonDialog :mode="DialogMode.Confirm" />
</template>相关阅读
这条规则对应中文文章 用 const enum 和字符串值类型保留公开 API 的自然写法。文章里的核心结论是:Vue template 可以直接访问 <script setup> 里的 enum member,一比一中转常量只增加命名和跳转成本。真正承担语义转换、展示文案或运行时遍历的映射对象仍然应该保留。
接入方式
@sheng/eslint-plugin 的内置 config 会以 warn 开启这条规则。需要单独配置时,可以这样写:
js
import sheng from '@sheng/eslint-plugin'
export default [
{
plugins: {
'@sheng': sheng,
},
rules: {
'@sheng/no-template-enum-member-alias': 'warn',
},
},
]选项
当前没有 options。
维护入口
- 规则源码:
src/rules/no-template-enum-member-alias/index.mjs - 规则短说明:
src/rules/no-template-enum-member-alias/README.md - 测试用例:
tests/unit/architecture/