Я читал в статье, что основная команда TypeScript, объясняющая ESLint, имеет более производительную архитектуру, чем TSLint. А с другой стороны, @typescript-eslint/parser
делает более удобный AST, который работает лучше всего вместе с @typescript-eslint/eslint-plugin
.
Теперь у меня такое ощущение, что мой файл tslintrc
не имеет хорошей настройки плагинов и расширений.
- Хорошо ли следовать правилам Airbnb в
tsx
или просто следовать стандартным правилам?
- Какова должна быть последовательность, включающая
extends
и plugins
, чтобы они не перекрывали друг друга и получали из них наилучшие помехи и автоматическое исправление?
- Приложение, созданное с помощью CRA
yarn create react-app myapp --typescript
и ничего не изменившее в tsconfig.json
Это мой .eslintrc.js
module.exports = {
env: {
browser: true,
es6: true,
node: true
},
parser: "@typescript-eslint/parser",
extends: [
"plugin:@typescript-eslint/recommended",
"react-app",
"plugin:prettier/recommended",
"prettier",
"prettier/react"
],
globals: {
Atomics: "readonly",
SharedArrayBuffer: "readonly"
},
parserOptions: {
ecmaFeatures: {
tsx: true
},
ecmaVersion: 2018,
sourceType: "module"
},
plugins: ["@typescript-eslint", "react", "prettier"],
rules: {
indent: ["error", "tab"],
"linebreak-style": ["error", "unix"],
quotes: ["error", "single"],
semi: ["error", "always"]
}
};
// and these parts in the VSCode setting
"eslint.validate": [
"javascript",
"javascriptreact",
{ "language": "typescript", "autoFix": true },
{ "language": "typescriptreact", "autoFix": true }
],
"prettier.eslintIntegration": true,
Также, если кто-то знает хорошую настройку в проекте в GitHub / Gist, это будет приветствоваться.