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 + "!";
}
支持这种风格的另一个理由是,当方法链中的某些内容发生更改时,它可以提高差异的清晰度:
不太清楚:
-d3.select("body").selectAll("p").style("color", "white"
+d3.select("body").selectAll("p").style("color", "blue"
更清晰:
d3
.select("body")
.selectAll("p")
- .style("color", "white"
+ .style("color", "blue"
规则细节
此规则在每次调用方法链或深入成员访问后都需要换行符。计算的属性访问例如instance[something]
被排除。
选项
该规则有一个对象选项:
"ignoreChainWithDepth"
(默认值2
:)允许链条达到指定的深度.ignoreChainWithDepth 此规则的错误
代码示例使用默认{ "ignoreChainWithDepth": 2 }
选项:/ * eslint newline-per-chained-call:[“error”,{“ignoreChainWithDepth”:2
}] * /