ES6 javascript常量返回错误

时间:2017-01-19 18:46:53

标签: javascript ecmascript-6 eslint

在测试模块上运行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编码是什么? 感谢您的反馈

3 个答案:

答案 0 :(得分:2)

您没有else案例。如果您的ifelse 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)

您可以考虑将代码段更改为

&#13;
&#13;
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;
&#13;
&#13;

希望有所帮助