首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >eslint对象-卷曲-换行符-更漂亮的多行逻辑

eslint对象-卷曲-换行符-更漂亮的多行逻辑
EN

Stack Overflow用户
提问于 2019-12-13 07:30:58
回答 3查看 15.3K关注 0票数 9

我是新来的。大部分的集成工作都很好,但变形对象中的多行不是这样。

更漂亮的1.19.1 操场链接

输入:

代码语言:javascript
复制
const {
  ciq,
  drawingMenuX,
  drawingMenuY,
  selectedDrawing,
} = store.chartStore;

输出:

代码语言:javascript
复制
const { ciq, drawingMenuX, drawingMenuY, selectedDrawing } = store.chartStore;

预期行为:

代码语言:javascript
复制
const {
  ciq,
  drawingMenuX,
  drawingMenuY,
  selectedDrawing,
} = store.chartStore;

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

它在普通对象中运行良好,但在析构对象中不工作。

我怎样才能解决这个问题?我只需要修复每一行吗?

package.json

代码语言:javascript
复制
"@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

代码语言:javascript
复制
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' }],
      },
    },
  ],
};
EN

回答 3

Stack Overflow用户

发布于 2020-03-13 21:19:09

我也更喜欢漂亮点的处理方法。

在您的.eslintrc.js中,将其添加到rules中。

代码语言:javascript
复制
'object-curly-newline': 'off',
票数 14
EN

Stack Overflow用户

发布于 2021-09-07 15:44:42

我也有同样的问题,不想把它完全关掉。幸运的是,这个规则有一个配置选项,您可以在这里查找这个选项( object-curly-newline )。

它允许在属性内部、属性之间甚至最少的属性之间配置换行,甚至可以强制执行一致性(两种大括号,或者既不直接括起换行符)。

下面是我如何使用它:

代码语言:javascript
复制
/* inside .eslintrc.json */

"rules": {
  "object-curly-newline": [
    "error",
    {
      "ObjectExpression": { "consistent": true, "multiline": true },
      "ObjectPattern": { "consistent": true, "multiline": true },
      "ImportDeclaration": "never",
      "ExportDeclaration": { "multiline": true, "minProperties": 3 }
    }
  ]
}
票数 5
EN

Stack Overflow用户

发布于 2021-10-04 08:58:24

根据我自己的测试,您应该在rules中添加以下内容(与GollyJer的回答一致)

代码语言:javascript
复制
'object-curly-newline': 0,
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59318013

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档