You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置ESLint扁平配置仅分析TypeScript文件并启用严格规则?

问题解决:让ESLint仅分析TypeScript文件并应用strict规则

正确配置示例

调整你的eslint.config.js,通过全局排除非TypeScript文件+精准绑定规则的方式解决问题:

import tseslint from "typescript-eslint";
import globals from "globals";

export default [
  // 全局排除不需要分析的文件
  {
    ignores: ["**/*.js", "**/*.jsx", "**/*.mjs", "**/*.cjs"]
  },
  // 仅对.ts文件应用typescript-eslint strict规则集
  {
    files: ["**/*.ts"],
    extends: [...tseslint.configs.strict],
    languageOptions: {
      parser: tseslint.parser,
      globals: globals.node // 根据项目环境调整,比如浏览器环境用globals.browser
    }
  }
];

问题根源

ESLint扁平配置默认会扫描所有符合默认扩展名的文件(包括.js、.jsx等)。即便你给某组配置指定了files: ["**/*.ts"],如果没有明确排除其他文件,ESLint内置的JavaScript规则仍会作用在JS文件上,触发报错。通过ignores全局排除非目标文件,就能彻底避免ESLint处理这些文件。


关于ESLint扁平配置的文件分组与处理流程

文件分组逻辑

扁平配置是一个配置对象数组,每个对象通过files和ignores属性实现文件分组:

  • files:指定该配置要作用的文件路径(支持glob通配符)
  • ignores:指定该配置要排除的文件路径(优先级高于files)

你可以根据文件类型、目录结构拆分多组配置,比如给src目录下的业务代码用一套规则,给测试文件用另一套规则,完全按需定制。

核心处理流程

  1. 文件扫描与匹配:ESLint会遍历项目中所有文件(默认跳过node_modules等目录),对每个文件逐一检查数组中的配置对象:
    • 若文件匹配当前配置的ignores,直接跳过该配置
    • 若文件匹配当前配置的files,则该配置会被纳入该文件的最终配置集合
  2. 配置合并:单个文件匹配到的所有配置对象,会按数组顺序合并:
    • 后序配置会覆盖前序的同名规则、解析器设置等
    • extends引入的规则会先完成合并,再处理当前配置的自定义规则
  3. 规则执行:合并后的最终配置会应用到该文件,执行代码检查。

简言之,扁平配置的逻辑是按文件匹配配置,按顺序合并规则,相比旧版层级配置,更直观且灵活度更高。

内容的提问来源于stack exchange,提问作者Pilaf T. Pilafian

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 03:12:11