2017-01-19 5 views
0

работает ворса на тестовом модуле заявляет об ошибке:ES6 Javascript постоянного возврата ошибки

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 в этом случае? благодарит за отзыв

+2

Если это не тот случай, 'x% 2 === 0',' x% 2 === 1', 'x> 100' или' x <0' - для Например, когда x равно 55,5 - что нужно вернуть? – Ryan

ответ

3

У вас нет else чехла. Если ни одно из ваших условий if или else if не выполнено, возврат невозможен.

Вы можете легко добавить блок по умолчанию else или просто просто вернуться в конце функции.

+0

спасибо, я добавлю простой возврат «undefined»; перед закрывающей скобкой ... – erwin

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' 
}; 
+0

Ответы Джастина .. вот что я оставил в своем комментарии к – erwin

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; 
 
};

Надеется, что это помогает

+0

спасибо ... на самом деле мой фрагмент был написан с ошибкой ... а затем изменил порядок предложений if, чтобы правильно обработать результат. .. благодаря – erwin