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

@typescript-eslint/recommended-type-checked 未检测到函数参数类型错误的问题排查

我最近碰到了一个挺让人困惑的问题:明明代码里调用函数时传了错误类型的参数,TypeScript编译器能正常报错,但集成了ESLint v8.57.1和TypeScript插件后,运行ESLint却完全没检测到这个错误。反而用npx tsc -noemit能轻松揪出问题。

举个例子,我写了这样的函数:

function test(a: string, b: number) {
  // 函数逻辑省略
}

// 这里传了boolean类型的参数,TS编译器会报错,但ESLint毫无反应
test(true);

我已经按照官方文档配置了带类型检查的ESLint,配置文件如下:

// 基于expo的ESLint配置
module.exports = {
  parser: '@typescript-eslint/parser',
  parserOptions: {
    ecmaVersion: 2021,
    sourceType: 'module',
    project: './tsconfig.json',
  },
  ignorePatterns: ['/dist/*'],
  extends: [
    'expo',
    'plugin:react/recommended',
    'plugin:prettier/recommended',
    'plugin:@typescript-eslint/recommended',
    'plugin:@typescript-eslint/recommended-type-checked',
  ],
  plugins: ['@typescript-eslint', 'prettier'],
  rules: {
    'prettier/prettier': 'error',
    'react/react-in-jsx-scope': 'off',
    'react/prop-types': 'off',
    '@typescript-eslint/no-require-imports': 'off',
    '@typescript-eslint/no-explicit-any': 'off',
  },
  overrides: [
    {
      files: ['*.js'],
      extends: ['plugin:@typescript-eslint/disable-type-checked'],
    },
  ],
};

根据官方文档,@typescript-eslint/recommended-type-checked预设应该能检测这类类型错误才对,针对这个问题,我整理了几个排查方向:

  • 确认tsconfig.json的范围配置:先检查你的tsconfig.json里的include字段,确保出现错误的文件被包含在内。如果目标文件不在include列表里,ESLint的类型检查模块就无法获取到正确的类型信息,自然会跳过错误检测。
  • 验证tsconfig路径是否正确:检查ESLint配置里parserOptions.project的路径是否准确。如果你的ESLint配置文件不在项目根目录,相对路径可能需要调整,比如写成../tsconfig.json。
  • 检查插件版本兼容性:确保@typescript-eslint/eslint-plugin和@typescript-eslint/parser的版本与ESLint v8.57.1兼容。版本不匹配很可能导致类型检查功能失效,建议查看官方兼容性说明,或者统一升级到匹配的版本。
  • 排查文件后缀是否被覆盖规则影响:你的配置里针对.js文件禁用了类型检查,如果出错的文件后缀有误(比如本该是.ts却写成了.js),就会触发这条禁用规则,导致ESLint不做类型检查。
  • 手动开启具体规则:虽然预设应该包含相关检查,但可以尝试手动开启@typescript-eslint/no-unsafe-argument规则,在rules里添加:
    '@typescript-eslint/no-unsafe-argument': 'error'
    
    看看是否能检测到参数类型错误。

备注:内容来源于stack exchange,提问作者Zorayr

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.14 13:59:30