newline-per-chained-call

在方法链中的每次调用后都需要换行符

一些该规则报告的问题可以通过 --fix 命令行选项 自动修复

在没有换行符的单行上的链式方法调用更难阅读,因此一些开发人员在链中的每个方法调用后放置一个换行符,以使其更具可读性和易于维护。

让我们看一下以下完全有效(但单行)的代码。

d3.select("body").selectAll("p").data([4, 8, 15, 16, 23, 42 ]).enter().append("p").text(function(d) { return "I'm number " + d + "!"; });

但是,通过适当的新行,它变得易于阅读和理解。查看下面编写的相同代码,每次调用后都有换行符。

d3
    .select("body")
    .selectAll("p")
    .data([
        4,
        8,
        15,
        16,
        23,
        42
    ])
    .enter()
    .append("p")
    .text(function (d) {
        return "I'm number " + d + "!";
    });

CYsaUWMXC23Gd4juPllUOv/fyGqzOM05Bn5CfBOo2NTKEG75kTw0BbxxBYSDKZOC4OiRC+6ZRrfyJgsBiSgDYqI4L+B5LfRvjBWEs9s0V8WxC6dCHsa+QsQsHsIRAZf8iw+mOOLsFkTfg2y9p+w29vIc1YCsojFcmIKCHxH/W+w=

hOhRUq6rbPP+umuP9aj4Zg==

-d3.select("body").selectAll("p").style("color", "white");
+d3.select("body").selectAll("p").style("color", "blue");

TahLW7PWf8BnIv/sr4uLLA==

d3
    .select("body")
    .selectAll("p")
-    .style("color", "white");
+    .style("color", "blue");

规则详情

OuMt15fwfQ0QhxljDaB5uTPfZwPfoNatG+PlSQNSv7kudKzhOdVZQ+/SRkdP7ua06pNRmvV8+rEAs7l89HEWzVhLJsAP+XVxqF/suj3d7LeqqMh/XW+hF2nok0ZX515AqbLF4H4W8RW9R5jY4WthcVWtmNfVvIMGsApGXSuKmfqE/47gl6oxK7YXQX/zKHyXGpDBbWo4PAc19BPfAEnbvA==

选项

Z5nHobhK8Eu8xZRFsKSU8KHNUGwE9/xf+2VbB7ewrC742mFqLwhJnE+caWUPnqKj

    Q/o594+iZkuTBDe2WyTeB+ZCSg03ActxoP009lfGSmDAODaZPbim9bGaWoba3M/q8edSfGLcBH1St04kDjR5IGVE/0LuE/fn5QKJ9bY3Lxg72mzQd7ybRG8jULdIhum09gQ5/HGgX1VmKyQTFrEbPw==

ignoreChainWithDepth

CEHxsB1TjBaKZMpVoTBEZEbayIUkSXPh4uTtE7gl5kUKhpTEsfFOzpFLtn9kFNMMeOU+253Yn3uNnd4UQrni42IJBaGw7wooJdjrIUdBsy0uYpFboCKYiHPesbX2j51l

/*eslint newline-per-chained-call: ["error", { "ignoreChainWithDepth": 2 }]*/

_.chain({}).map(foo).filter(bar).value();

// Or
_.chain({}).map(foo).filter(bar);

// Or
_
  .chain({}).map(foo)
  .filter(bar);

// Or
obj.method().method2().method3();

CEHxsB1TjBaKZMpVoTBEZEbayIUkSXPh4uTtE7gl5kUKhpTEsfFOzpFLtn9kFNMMeOU+253Yn3uNnd4UQrni4/HWhMCQgr1tyIC6qyBLbmwxk0UBm5HpVA30gNP9Vlqq

/*eslint newline-per-chained-call: ["error", { "ignoreChainWithDepth": 2 }]*/

_
  .chain({})
  .map(foo)
  .filter(bar)
  .value();

// Or
_
  .chain({})
  .map(foo)
  .filter(bar);

// Or
_.chain({})
  .map(foo)
  .filter(bar);

// Or
obj
  .prop
  .method().prop;

// Or
obj
  .prop.method()
  .method2()
  .method3().prop;

何时不使用

5d4zhSN0vyhLBhXeQwzuUpn5I0ARboryiiNSat5QA8JU6FA2FB5ovN+xQ2iH4Fyxv/FUJwqJy8EGsWAC1YD3IK7QrpJspJUDqKRhEcdSjJDvi+SEU+YxJ9ZVej1zNGih6VcdTUE1IcgTc6uD6JGiUsPqQt4q5ttQQVHROJmC2H4=