将ESLint与Airbnb规则一起使用,我无法通过比较运算符获得reduce方法。
在下面的代码中,名为 data 的数组包含对象,每个对象都有一个名为 id 的属性。 ESLint抛出的错误消息是:
const maxId = data.reduce((prev, current) => {
return prev.id > current.id ? prev.id : current.id;
});
ESLint错误:围绕箭头体的箭头体型/意外的块语句。
const maxId = data.reduce((prev, current) =>
prev.id > current.id ? prev.id : current.id);
ESLint错误:无混淆箭头/箭头功能与条件表达式含糊不清。
const maxId = data.reduce(function (prev, current) {
return prev.id > current.id ? prev.id : current.id;
});
ESLint错误:prefer-arrow-callback / Unexpected function expression。
那我怎么能让它发挥作用呢?
答案 0 :(得分:17)
将身体包裹在括号中,使其不会让人感到困惑":
{{1}}
答案 1 :(得分:2)
@Felix有解决linter问题的解决方案,但要使你的脚本在功能上运行,你应该使用
const maxId = data.reduce((prev, current) => Math.max(prev, current.id), -Infinity);
// ^^^^ ^^^^^^^^^^^
可用于除{1}和2之外的data
个数组。