【发布时间】:2020-11-17 02:16:52
【问题描述】:
我想知道为什么默认情况下以下代码对 CRA(和许多其他)js linter(s) 有问题。我在这里看到的是简洁易读的代码行。我的猜测是因为下面的一个班轮不是很可扩展。有时,小块简单的代码无论如何都不需要(不应该)变得更大。还有什么其他原因可以避免编写这样简单的单行代码?
doSomething( prev => (prev.searchField = val, { ...prev }) );
我真的需要这样做来让 linter 开心还是有其他方法可以保持上述单线?
doSomething(prev => {
prev.searchField = val;
return { ...prev };
});
为了保持简洁,让我们不要争论什么更具可读性,请回答为什么你认为 linter 会用 Unexpected use of comma operator no-sequences 警告这种类型的代码。
【问题讨论】:
-
因为有人制定了规则。通常这些会强制执行更多代码以防止拼写错误。
-
linter 所做的几乎所有事情都是见仁见智。
-
@Pointy 除非是 jslint 然后是福音 ????
-
“让我们不要讨论什么更具可读性,请回答为什么你认为 linter 会警告这种类型的代码”不会说为什么我认为 linter 警告这种类型的代码会引起争论吗?跨度>
-
虽然“可读”是主观的,但“可读”和“紧凑”并不经常一起出现。无论哪种方式,
doSomething(prev => ({...prev, searchField: val}))都达到了相同的效果,并且更常用。
标签: javascript reactjs linter