如何在VSCode中的同一项目中对.ts文件和.js文件运行typescript-eslint

时间:2019-08-21 18:12:31

标签: javascript typescript visual-studio-code eslint

我有一个包含javascript和打字稿文件的混合代码库。我想让eslint在.js文件上运行,而typescript-eslint在VSCode中的.ts文件上运行。

我已经设法将.eslintrc.json文件配置为使typescript-eslint在.ts文件上运行。问题在于,它最终还会在.js文件上运行typescript-eslint,而不是普通的老式eslint。

这似乎应该很简单并且相当普遍,但是尽管在Internet上进行了搜索,但我仍然找不到解决方案。

1 个答案:

答案 0 :(得分:15)

您需要覆盖配置,以 为js和ts文件使用单独的解析器 。您可以如下配置.eslintrc.js

module.exports = {
    root: true,    
    extends: [
      'eslint:recommended'
    ],
    "overrides": [
      {
        "files": ["**/*.ts", "**/*.tsx"],
        "env": { "browser": true, "es6": true, "node": true },
        "extends": [
          "eslint:recommended",
          "plugin:@typescript-eslint/eslint-recommended",
          "plugin:@typescript-eslint/recommended"
        ],
        "globals": { "Atomics": "readonly", "SharedArrayBuffer": "readonly" },
        "parser": "@typescript-eslint/parser",
        "parserOptions": {
          "ecmaFeatures": { "jsx": true },
          "ecmaVersion": 2018,
          "sourceType": "module",
          "project": "./tsconfig.json"
        },
        "plugins": ["@typescript-eslint"],
        "rules": {
          "indent": ["error", 2, { "SwitchCase": 1 }],
          "linebreak-style": ["error", "unix"],
          "quotes": ["error", "single"],
          "comma-dangle": ["error", "always-multiline"],
          "@typescript-eslint/no-explicit-any": 0
        }
      }
    ]
  };

示例项目为here