Eslint добавляет ненужный пробел между фигурными скобками, Prettier показывает ошибку - PullRequest
0 голосов
/ 08 мая 2020

Я использую prettier и eslint с машинописным текстом.

Когда я пишу код и мне приходится оставлять пустую функцию по причинам , 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)
};

Отметить пространство между скобками конструктора? Это дает мне ошибку Delete `·` eslint(prettier/prettier).

Когда я сохраняю файл или Prettier удаляет пробел ... тогда Eslint добавляет его снова.

Как я могу решить эту проблему?

РЕДАКТИРОВАТЬ: я хочу сохранить пространство назначения деструктуризации (например, ({ variable })), но не в пустых фигурных скобках (например, {})

Ниже мои .eslintrc.json и prettier.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',
};

1 Ответ

0 голосов
/ 08 мая 2020

Вы должны использовать это в файле настроек vscode.

 "prettier.bracketSpacing": false
...