javascript - eslint object-curly-newline 冲突更漂亮的多行基本原理

标签 javascript typescript eslint prettier

我是 prettier + typescript + eslint 的新手。
大多数集成工作正常,但解构对象中的多行则不行。

更漂亮的 1.19.1
Playground link

输入:

const {
  ciq,
  drawingMenuX,
  drawingMenuY,
  selectedDrawing,
} = store.chartStore;

输出:
const { ciq, drawingMenuX, drawingMenuY, selectedDrawing } = store.chartStore;

预期行为:
const {
  ciq,
  drawingMenuX,
  drawingMenuY,
  selectedDrawing,
} = store.chartStore;

我想在解构对象中保留多行格式,如基本原理(https://prettier.io/docs/en/rationale.html#multi-line-objects)

它在普通对象中运行良好,但在解构对象中不起作用

我该如何解决这个问题?
我只需要修复每一行吗?

包.json
"@typescript-eslint/eslint-plugin": "^2.11.0",
"@typescript-eslint/parser": "^2.11.0",
"eslint": "^6.7.2",
"eslint-config-airbnb": "^18.0.1",
"eslint-config-prettier": "^6.7.0",
"eslint-plugin-import": "^2.19.1",
"eslint-plugin-jsx-a11y": "^6.2.3",
"eslint-plugin-prettier": "^3.1.1",
"eslint-plugin-react": "^7.17.0",
"eslint-plugin-react-hooks": "^1.7.0",
"prettier": "^1.19.1",

.eslintrc.js

module.exports = {
  env: {
    browser: true,
    es6: true,
  },
  extends: ['plugin:react/recommended', 'plugin:prettier/recommended', 'airbnb'],
  plugins: ['react', '@typescript-eslint'],
  globals: {
    Atomics: 'readonly',
    SharedArrayBuffer: 'readonly',
  },
  parser: '@typescript-eslint/parser',
  parserOptions: {
    ecmaFeatures: {
      jsx: true,
    },
    ecmaVersion: 2018,
    sourceType: 'module',
  },
  settings: {
    'import/resolver': {
      node: {
        extensions: ['.js', '.jsx', '.ts', '.tsx'],
      },
    },
  },
  rules: {
    'react/jsx-filename-extension': [
      1,
      {
        extensions: ['.js', '.jsx', '.ts', '.tsx'],
      },
    ],

    'import/extensions': [
      'error',
      'ignorePackages',
      {
        js: 'never',
        jsx: 'never',
        ts: 'never',
        tsx: 'never',
      },
    ],

    'no-confusing-arrow': [0],
  },

  overrides: [
    {
      files: ['*.ts', '*.tsx'],
      rules: {
        '@typescript-eslint/no-unused-vars': [2, { args: 'none' }],
      },
    },
  ],
};

最佳答案

我也更喜欢 Prettier 处理这个问题的方式。

在您的 .eslintrc.js将此添加到您的 rules .

'object-curly-newline': 'off',

关于javascript - eslint object-curly-newline 冲突更漂亮的多行基本原理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59318013/

相关文章:

javascript - 如何防止内容在 ionic 框架中滚动到页脚后面

javascript - 如何删除 html 内的 script 标签

javascript - 如何解决这个错误 : package. json » eslint-config-react-app/jest#overrides[0]: Environment key "jest/globals"is unknown

reactjs - TypeScript linting 错误 : ref does not exist on component

javascript - Heroku 上部署的 Node.js + Express 应用程序中找不到 jQuery 文件

javascript - 防止谷歌表格中的重复数据

generics - Typescript 泛型是否使用类型删除来实现泛型?

javascript - [Angular 4/TypeScript]导入组件路径无法识别。但似乎有效并且应该有效

Angular Route Start 和 Route End 事件

javascript - 如何修复 Eslint 错误 "prefer-destructuring"?