我有一个包含javascript和打字稿文件的混合代码库。我想让eslint在.js文件上运行,而typescript-eslint在VSCode中的.ts文件上运行。
我已经设法将.eslintrc.json文件配置为使typescript-eslint在.ts文件上运行。问题在于,它最终还会在.js文件上运行typescript-eslint,而不是普通的老式eslint。
这似乎应该很简单并且相当普遍,但是尽管在Internet上进行了搜索,但我仍然找不到解决方案。
答案 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