如何在TypeScript项目中正确禁用ESLint的semicolon规则?
解决ESLint + typescript-eslint分号规则不生效问题
你的问题出在配置优先级上:针对.ts/.tsx文件的overrides块里扩展了xo-typescript,这个配置的规则优先级高于外层的rules,导致你在外层设置的@typescript-eslint/semi: ["error", "never"]被覆盖了。
正确配置方式
修改.eslintrc.json,把分号规则移到overrides的rules中,确保针对TS/TSX文件的规则生效:
{ "env": { "browser": true, "es2021": true }, "extends": [ "plugin:react/recommended", "xo" ], "overrides": [ { "extends": [ "xo-typescript" ], "files": [ "*.ts", "*.tsx" ], "rules": { "@typescript-eslint/semi": ["error", "never"], "semi": ["error", "never"] } } ], "parserOptions": { "ecmaVersion": "latest", "sourceType": "module" }, "plugins": [ "react", "@typescript-eslint" ] }
补充说明
xo和xo-typescript默认启用了强制分号的规则,必须在对应文件类型的配置块里明确覆盖这个规则才会生效。- 如果你想全局统一禁用分号,也可以在外层
rules先关闭xo的semi规则,但更推荐上面的方式,因为TS/JS规则可以按文件类型分开管理。
内容的提问来源于stack exchange,提问作者Roma N
相关产品推荐
相关产品推荐

