为了账号安全,请及时绑定邮箱和手机立即绑定

ESLint 错误地缩进多行参数 JavaScript 函数的单返回语句

ESLint 错误地缩进多行参数 JavaScript 函数的单返回语句

慕莱坞森 2022-12-29 10:33:35
我有这个带有多行参数和单体返回的函数(因为它们很长)。这是一个普通的 JS 文件:const myFunction = (    looooooooongParam1,    looooooooongParam2,    looooooooongParam3,    looooooooongParam4,) => (    looooooooongParam1    + looooooooongParam2    + looooooooongParam3    + looooooooongParam4    + looooooooongParam4);ESLint 格式化错误地将返回的行向右移动。然后它抱怨缩进是错误的(当然是!):我的 ESLint 规则是:module.exports = {    env: {        browser: true,        es2020: true,    },    extends: [        'plugin:react/recommended',        'airbnb',        'plugin:@typescript-eslint/eslint-recommended',        'plugin:@typescript-eslint/recommended',    ],    parser: '@typescript-eslint/parser',    parserOptions: {        ecmaFeatures: {            jsx: true,        },        ecmaVersion: 11,        sourceType: 'module',    },    plugins: [        'react',        '@typescript-eslint',    ],    rules: {        'react/jsx-filename-extension': [2, { extensions: ['.js', '.jsx', '.ts', '.tsx'] }],        'react/jsx-indent': ['error', 4],        indent: ['error', 4],        'import/extensions': [            'error',            'ignorePackages',            {                js: 'never',                jsx: 'never',                ts: 'never',                tsx: 'never',                mjs: 'never',            },        ],        'no-unused-vars': 'off',        '@typescript-eslint/no-unused-vars': 'error',    },    settings: {        'import/resolver': {            node: {                extensions: [                    '.js',                    '.jsx',                    '.ts',                    '.tsx',                ],            },        },    },};我在保存时使用 VSCode 并使用 eslint 格式化。VSCode相关设置:有什么想法可以让 ESLint 将返回行保持在左侧吗?编辑 1:在 VSCode 中保存文件时,我看到代码正确缩进了 0.2 秒,然后缩进不正确。编辑 2:如果我的参数较少,在一行中,缩进效果很好,所以只有在多行参数时才会发生这种情况;.
查看完整描述

1 回答

?
繁星淼淼

TA贡献1775条经验 获得超11个赞

在我手动运行eslint --fix该文件后,我注意到它工作正常,所以我发现VSCode 有它自己的格式化程序并且与 ESLint 正在做的事情重叠

解决方案:我不得不"javascript.format.enable": false禁用 VSCode 的 JS 格式化程序来格式化我的 JS 文件,只让 ESLint 执行它。

注意:同样的故事适用于 TSX 文件,我不得不"typescript.format.enable": false让 ESLint 只格式化 TSX 代码。


查看完整回答
反对 回复 2022-12-29
  • 1 回答
  • 0 关注
  • 65 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信