javascript - Eslint 在大括号之间添加了不必要的空格,Prettier 显示错误

标签 javascript eslint prettier

我正在使用 prettier 和 eslint 和 typescript 。

当我编写一些代码并且由于某些原因不得不留下一个空函数时,Eslint 和 Prettier 很难在空函数的大括号之间添加和删除空格。

Prettier 正在删除空间,而 Eslint 正在添加它。

预期:

  constructor(
    @inject('UsersRepository')
    private usersRepository: IUsersRepository,
  ) {}

const example = ({ variable }) => {
    console.log(variable)
};

保存后我得到什么(Eslint 修复保存):

  constructor(
    @inject('UsersRepository')
    private usersRepository: IUsersRepository,
  ) { }

const example = ({ variable }) => {
    console.log(variable)
};

Se构造函数大括号之间的空间?这给了我一个 Delete `·` eslint(prettier/prettier)错误。

当我保存文件时,或者 Prettier 删除了空间......然后 Eslint 再次添加它。

我该如何解决这个问题?

编辑:我想保留解构分配空间(例如 ({ variable }) )但不是空括号(例如 {} )

下面,我的.eslintrc.jsonprettier.config.js
{
  "env": {
    "es6": true,
    "node": true,
    "jest": true
  },
  "extends": [
    "airbnb-base",
    "plugin:@typescript-eslint/recommended",
    "prettier/@typescript-eslint",
    "plugin:prettier/recommended"
  ],
  "globals": {
    "Atomics": "readonly",
    "SharedArrayBuffer": "readonly"
  },
  "parser": "@typescript-eslint/parser",
  "parserOptions": {
    "ecmaVersion": 2018,
    "sourceType": "module"
  },
  "plugins": [
    "@typescript-eslint",
    "prettier"
  ],
  "rules": {
    "prettier/prettier": "error",
    "class-methods-use-this": "off",
    "@typescript-eslint/camelcase": "off",
    "no-useless-constructor": "off",
    "object-curly-spacing": [
      "error",
      "always"
    ],
    "@typescript-eslint/no-unused-vars": [
      "error",
      {
        "argsIgnorePattern": "_"
      }
    ],
    "@typescript-eslint/interface-name-prefix": [
      "error",
      {
        "prefixWithI": "always"
      }
    ],
    "import/extensions": [
      "error",
      "ignorePackages",
      {
        "ts": "never"
      }
    ]
  },
  "settings": {
    "import/resolver": {
      "typescript": {}
    }
  }
}


module.exports = {
  singleQuote: true,
  trailingComma: 'all',
  arrowParens: 'avoid',
};

最佳答案

我遇到了非常相似的错误,但在我的情况下,默认的 VSCode TypeScript 格式化程序与大括号混淆。
在 .vscode/settings.json 添加:

"javascript.format.insertSpaceAfterOpeningAndBeforeClosingEmptyBraces": false,
"typescript.format.insertSpaceAfterOpeningAndBeforeClosingEmptyBraces": false,
您可能还会发现有用的选项:
"[typescript]": {
    "editor.defaultFormatter": "dbaeumer.vscode-eslint"
}

关于javascript - Eslint 在大括号之间添加了不必要的空格,Prettier 显示错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61670561/

相关文章:

typescript - VSCode、Prettier 和 TSLint : formatOnSafe messes up auto sort of imports

tslint - 如何使用 prettier 在类中的方法声明之后和之前添加新行?

javascript - Protractor - 选择文本

javascript - 获取特定类的每个 UL 元素的 ID

reactjs - 处理 "Failed to load plugin ' 中声明的 '.eslintrc' react' 'eslint-plugin-react' : Cannot find module 0x104567910 "ESLint error

eslint - 'multiple' 语法之前的预期 'single' 语法

javascript - 使用四元数在 Three.js 中将平移/倾斜 Angular 转换为 XYZ?

javascript - 如何删除 Angular 字符串中两个单词之间的一个以上空格?

javascript - ESLint 错误/警告应该阻止在 React 中编译(create-react-app)

visual-studio-code - 在 Visual Studio 代码中禁用 .ejs 文件的保存格式