Возвращать объект из функции стрелки

Я хочу вывести объект из функции стрелки (в краткой форме), поэтому полный код:

somemethod(function(item) {
   return {id: item.id};
})

со стрелочными функциями:

somemethod((item) => {
   return {id: item.id};
})

и теперь короткая форма должна выглядеть примерно так:

somemethod(item = > {id: item.id} )

который не работает, а также этот:

somemethod(item = > {{id: item.id}} )

только одно решение, которое я нашел сейчас, - это использовать запись объекта Object:

somemethod(item = > new Object({id: item.id}) )

есть ли другой способ?

Ответ 1

somemethod(item => ({ id: item.id }))

Тест:

> a = item => ({id: item.id})
< function item => ({id: item.id})
> a({ id: 5, name: 7 });
< Object {id: 5}

Ответ 2

Для объектов вы обертываете свой объект в круглых скобках, иначе он не работает.

Это связано с тем, что код внутри фигурных скобок ({}) анализируется как последовательность операторов

Попробуйте как ниже

var func = () => ({ foo: 1 });

: функции стрелок