如何让自定义ESLint规则仅作用于TypeScript文件?
让自定义ESLint规则仅作用于TS文件的两种方法
你可以通过以下两种方式让你的自定义规则只在TypeScript文件(.ts/.tsx)中生效:
方法一:在自定义规则的元数据中指定文件范围
直接在你的ESLint规则定义里,通过meta.files属性限定规则仅匹配TS/TSX文件。这样所有使用该插件的项目,规则都会自动跳过JS文件。
示例代码:
module.exports = { meta: { type: "suggestion", fixable: "code", docs: { description: "Add generic type to function calls", }, // 限定仅作用于TS/TSX文件 files: ["*.ts", "*.tsx"], }, create(context) { // 你的规则逻辑代码 }, };
方法二:在项目ESLint配置中用overrides配置
如果不想修改插件代码,也可以在项目的ESLint配置文件(比如.eslintrc.js)里,通过overrides块针对TS文件单独启用规则,JS文件则默认不启用。
示例配置:
// .eslintrc.js module.exports = { // 全局规则配置(JS文件会继承这里的规则) rules: { // 其他全局规则... "your-plugin/your-rule": "off", // 全局关闭该规则 }, overrides: [ { // 匹配所有TS/TSX文件 files: ["*.ts", "*.tsx"], rules: { "your-plugin/your-rule": "error", // 仅在TS文件中启用该规则 }, }, ], };
两种方法按需选择:如果希望插件本身就只针对TS场景,选方法一;如果需要在不同项目里灵活控制规则的适用范围,选方法二更合适。
内容的提问来源于stack exchange,提问作者Eliya Cohen
相关产品推荐
相关产品推荐

