@typescript-eslint/member-ordering规则配置后不生效问题咨询
排查解决步骤
- 第一步:确认
@typescript-eslint依赖版本
同组按字母排序的功能是@typescript-eslint/eslint-pluginv5.10.0版本才新增的能力,先检查你项目中@typescript-eslint/eslint-plugin和@typescript-eslint/parser的版本,确保两个依赖版本一致且都≥5.10.0,版本过低直接升级到最新稳定版即可。 - 第二步:校验规则配置是否被覆盖
运行命令npx eslint --print-config 你的测试类所在的TS文件路径,查看输出结果中@typescript-eslint/member-ordering的配置是否和你写的完全一致:- 如果不一致,说明配置被其他规则覆盖了,常见的覆盖来源包括:eslint extends引入的公共规则集(比如airbnb、standard配置)、配置文件中的
overrides字段针对TS文件的单独配置、更高层级目录下的.eslintrc配置文件,逐处排查移除冲突的配置即可。 - 如果一致,进入下一步排查。
- 如果不一致,说明配置被其他规则覆盖了,常见的覆盖来源包括:eslint extends引入的公共规则集(比如airbnb、standard配置)、配置文件中的
- 第三步:检查成员类型匹配问题
规则匹配成员类型时会按你填写的memberTypes顺序匹配第一个符合的类型,没有匹配到的成员会被规则忽略,不会触发校验:- 确认你类中的所有成员类型都已经被包含在
memberTypes列表中,比如你当前的配置没有列访问器(get/set)、签名等类型,如果你的类中存在getter、setter,需要补充public-get/protected-get/private-get等相关类型到列表中。 - 如果你用的是ES原生私有字段(
#xxx格式)而非TS的private修饰符声明私有成员,需要确认对应的类型已加入配置列表。
- 确认你类中的所有成员类型都已经被包含在
- 第四步:确认文件被ESLint正常校验
- 先检查
.eslintignore文件是否排除了你的测试文件。 - 在终端直接运行
npx eslint 你的测试类所在的TS文件路径,如果终端能输出对应的member-ordering错误,说明是编辑器ESLint插件的问题,重启ESLint服务或者编辑器即可;如果终端也没有输出错误,回到前几步重新检查配置。
- 先检查
内容的提问来源于stack exchange,提问作者Sampgun
相关产品推荐
相关产品推荐

