我们正在从es6迁移到TSX。 JS文件用扩展了.eslintrc
的{{1}}来代替,而TSX用扩展了airbnb config
,.eslintrc.js
和react/recommended
的{{1}}来代替。 / p>
我们如何设置eslint将JS规则应用于纯JS文件,将TS(X)规则应用于纯TS文件?
我已经在网上搜索了一些建议,这些建议暗示了覆盖,但是我无法全神贯注于如何将插件集成在一起。
.eslintrc for JS:
@typescript-eslint/recommended
.eslintrc.js for TSX:
prettier/recommended
答案 0 :(得分:5)
您需要覆盖“ .eslintrc.js”文件中的ts,tsx文件。尝试下一个参数:
module.exports = {
// parser: 'babel-eslint',
// "parserOptions": {
// "ecmaVersion": 6,
// "sourceType": "module",
// "ecmaFeatures": {
// "jsx": true,
// "experimentalObjectRestSpread": true
// }
// },
"extends": "airbnb",
"env": {
"browser": true,
"es6": true
},
"settings": {
"import/resolver": "webpack"
}
"rules": {
"indent": ["error", 4, { "SwitchCase": 1 }],
"no-alert": "error",
"no-debugger": "error",
"no-console": "off",
"no-shadow": "off",
"no-plusplus": "off",
"no-empty-pattern": "off",
"no-underscore-dangle": "off",
"no-case-declarations": "off",
"no-else-return": "off",
"padded-blocks": "off",
"no-tabs": "off",
"default-case": "error",
"comma-dangle": "error",
"no-nested-ternary": "off",
"consistent-return": "off",
"no-param-reassign": "off",
"no-use-before-define": "off",
"brace-style": ["error", "stroustrup", { "allowSingleLine": true }],
"import/prefer-default-export": "off",
"max-len": ["error", { "code": 120 }],
"object-curly-newline": ["error", { "multiline": true, "consistent": true }],
"arrow-body-style": "off",
"arrow-parens": ["error", "as-needed"],
"quotes": ["error", "single"],
"prefer-arrow-callback": "off",
"no-new-object": "off"
},
overrides: [{
files: ["*.ts", "*.tsx"],
parser: "@typescript-eslint/parser",
plugins: ["@typescript-eslint"],
extends: [
'plugin:react/recommended',
'plugin:@typescript-eslint/recommended',
'plugin:prettier/recommended'
],
parserOptions: {
ecmaversion: 2018,
sourceType: 'module',
ecmaFeatures: {
jsx: true,
},
},
settings: {
react: {
version: 'detect',
},
},
/**
* Typescript Rules
*/
rules: {
'@typescript-eslint/no-explicit-any': 'off'
}}]
}