EsLint имеет хорошее правило: согласующий-возврат
Требует, чтобы операторы возврата указывали всегда или никогда не указывали значения.Если какие-либо пути к коду в функции возвращают значение явно, но некоторые пути к коду не возвращают значение явно, это может быть ошибкой при наборе, особенно в большой функции
Руководство по стилю в Airbnb JavaScript
// No implicit return with side effects
function foo(callback) {
const val = callback();
if (val === true) {
// Do something if callback returns true
}
}
Так что же нам возвращать даром?
В JavaScript undefined
означает, что переменная была объявлена, но ей еще не присвоено значение.
null
- это значение присваивания.Его можно присвоить переменной как представление без значения.
null vs undefined
TLDR : return null
.
PS также взгляните на Шаблон нулевого объекта .Если путь успеха возвращает Promise, то отрицательный путь может return Promise.resolve(null)
- если потребитель функции уже проверил значение внутри Promise и ему все равно, почему оно пустое.