为什么许多 linters 在使用逗号运算符编写简洁代码时会发出警告?
Why do many linters warn when using comma operators to write terse code?
我想知道为什么默认情况下以下代码对 CRA(和许多其他)js linter 有问题。我在这里看到的是紧凑可读的代码行。我的猜测是因为下面的一个衬里不是很可扩展。有时,小而简单的代码块无论如何都不需要(不应该)变大。还有什么其他原因可以避免像这样编写简单的一行代码?
doSomething( prev => (prev.searchField = val, { ...prev }) );
我真的需要这样做才能让 linter 开心吗?还是有其他方法可以保持上面的一行?
doSomething(prev => {
prev.searchField = val;
return { ...prev };
});
为了保持简洁我们不要讨论什么更具可读性,请回答为什么你认为 linters 用 Unexpected use of comma operator no-sequences
.
警告这种类型的代码
ESLint 规则是非常可定制的,允许具有特定指南的团队定制警告和 linting,这样他们就可以开始使用该工具,而无需编辑他们以前的所有代码。
但是,CRA 和其他一些人提供了推荐的 linter 设置,这些设置通常是“最佳实践”,也可以防止初学者犯错。
虽然您可能认为简单的一行代码是可读的,但对于很多人来说并非如此,因此 no-sequences
规则是您碰巧使用的预选规则集的一部分正在使用。
如果您不同意这些建议,则可以轻松将其关闭。
我想知道为什么默认情况下以下代码对 CRA(和许多其他)js linter 有问题。我在这里看到的是紧凑可读的代码行。我的猜测是因为下面的一个衬里不是很可扩展。有时,小而简单的代码块无论如何都不需要(不应该)变大。还有什么其他原因可以避免像这样编写简单的一行代码?
doSomething( prev => (prev.searchField = val, { ...prev }) );
我真的需要这样做才能让 linter 开心吗?还是有其他方法可以保持上面的一行?
doSomething(prev => {
prev.searchField = val;
return { ...prev };
});
为了保持简洁我们不要讨论什么更具可读性,请回答为什么你认为 linters 用 Unexpected use of comma operator no-sequences
.
ESLint 规则是非常可定制的,允许具有特定指南的团队定制警告和 linting,这样他们就可以开始使用该工具,而无需编辑他们以前的所有代码。
但是,CRA 和其他一些人提供了推荐的 linter 设置,这些设置通常是“最佳实践”,也可以防止初学者犯错。
虽然您可能认为简单的一行代码是可读的,但对于很多人来说并非如此,因此 no-sequences
规则是您碰巧使用的预选规则集的一部分正在使用。
如果您不同意这些建议,则可以轻松将其关闭。