Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在VSCode中的同一项目中对.ts文件和.js文件运行typescript eslint_Javascript_Typescript_Visual Studio Code_Eslint - Fatal编程技术网

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

Javascript 如何在VSCode中的同一项目中对.ts文件和.js文件运行typescript eslint,javascript,typescript,visual-studio-code,eslint,Javascript,Typescript,Visual Studio Code,Eslint,我有一个混合了javascript和typescript文件的代码库。我希望在VSCode中的.js文件上运行eslint,在.ts文件上运行typescript eslint 我已经成功地配置了.eslintrc.json文件,以使typescript eslint在.ts文件上运行。问题是,它也会在.js文件上运行typescript eslint,而不是普通的旧eslint 这看起来应该很简单,也很常见,但尽管在互联网上搜索了很多次,我还是没有找到解决方案。您需要覆盖配置,以便对js和ts

我有一个混合了javascript和typescript文件的代码库。我希望在VSCode中的.js文件上运行eslint,在.ts文件上运行typescript eslint

我已经成功地配置了.eslintrc.json文件,以使typescript eslint在.ts文件上运行。问题是,它也会在.js文件上运行typescript eslint,而不是普通的旧eslint


这看起来应该很简单,也很常见,但尽管在互联网上搜索了很多次,我还是没有找到解决方案。

您需要覆盖配置,以便对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
        }
      }
    ]
  };

示例项目是

您可以在不同的目录中有不同的.eslintrc文件。您还可以为*.ts或*.js中的文件包含“覆盖”规则集。看,谢谢你的提示!我为此挣扎了一段时间。