在测试模块上运行lint表示错误:
module.exports = (x) => {
if (x % 2 === 0) {
return 'even';
} else if (x % 2 === 1) {
return 'odd';
} else if (x > 100) {
return 'big';
} else if (x < 0) {
return 'negative';
}
};
运行ESLint:
> yarn lint
../server/modules/my-awesome-module.js (1/0)
✖ 3:22 Expected to return a value at the end of this function consistent-return
✖ 1 error (7:35:56 PM)
error Command failed with exit code 1.
在这种情况下,正确的ES6编码是什么? 感谢您的反馈
答案 0 :(得分:2)
您没有else
案例。如果您的if
或else if
条件均未达到,则没有返回值。
您可以轻松添加默认的else
块,或只是在函数末尾添加一个简单的返回。
答案 1 :(得分:0)
问题是基于某些代码路径(任何if / else子句),函数可能返回一个值。但是,如果没有任何案例匹配(例如,x = 50.5),则不返回任何内容。为了保持一致性,函数应该返回一些东西。
示例解决方案是:
module.exports = (x) => {
if (x % 2 === 0) {
return 'even';
} else if (x % 2 === 1) {
return 'odd';
} else if (x > 100) {
return 'big';
} else if (x < 0) {
return 'negative';
}
return 'none'
};
答案 2 :(得分:0)
您可以考虑将代码段更改为
module.exports = (x) => {
var result = "";
if (x % 2 === 0) {
result = "even";
} else if (x % 2 === 1) {
result = "odd";
} else if (x > 100) {
result = "big";
} else if (x < 0) {
result = "negative";
}
return result;
};
&#13;
希望有所帮助