В меню Eclipse Окно -> Предпочтения -> Java -> Компилятор также проверяет «Настроить проект Настройки ".
Если у вас есть ошибка с той же версией Java: попробуйте вручную удалить папку сборки вашего проекта. Затем перезапустите Eclipse.
Вы должны обернуть литерал возвращаемого объекта в круглые скобки. В противном случае фигурные скобки будут считаться обозначающими тело функции. Следующие работы:
p => ({ foo: 'bar' });
Вам не нужно вставлять какое-либо другое выражение в круглые скобки:
p => 10;
p => 'foo';
p => true;
p => [1,2,3];
p => null;
p => /^foo$/;
и т. Д.
Если тело функции стрелки завернуто в фигурные скобки, оно не возвращается неявно. Оберните объект в круглые скобки. Это будет выглядеть примерно так.
p => ({ foo: 'bar' })
Обернув тело в parens, функция вернет { foo: 'bar }
.
Надеюсь, это решит вашу проблему. Если нет, я недавно написал статью о функциях Arrow, которая более подробно описывает ее. Надеюсь, вы сочтете это полезным. Функции стрелок Javascript
Вы можете задаться вопросом, почему синтаксис действителен (но не работает как ожидалось):
var func = p => { foo: "bar" }
Это из-за синтаксиса ярлыков JavaScript :
Итак, если вы переведёте вышеуказанный код на ES5, он должен выглядеть так:
var func = function (p) {
foo:
"bar"; //obviously no return here!
}