Я думаю, что вы неправильно понимаете, как работают функции стрелок.Они только неявно возвращаются, когда вы используете сокращенную версию.
Вот что я имею в виду - эти три функции функционально идентичны, они все возвращают строку 'hello'
function a() { return 'hello' }
const b = () => { return 'hello' }; //arrow Fn /w braces needs a return statement to return anything
const c = () => 'hello'; //shorthand arrow Fn w/o braces returns whatever the arrow points to
Вот демонстрацияэто в действии, используя все различные стили функций
//regular function with no return value
var a = 'bar';
const myFunc1 = function() { a = 'foo'; }
console.log(myFunc1(), a);
//regular function with a return value
a = 'bar';
const myFunc2 = function() { return a = 'foo'; }
console.log(myFunc2(), a);
//arrow function with a return value
a = 'bar';
const myFunc3 = () => { return b = 'foo'; }
console.log(myFunc3(), a);
//arrow function with no return value
a = 'bar';
const myFunc4 = () => { b = 'foo'; }
console.log(myFunc4(), a);
//arrow function using shorthand, which has an implicit return value
a = 'bar';
const myFunc5 = () => b = 'foo';
console.log(myFunc5(), a);