How to return object explicitly in CoffeeScript

This works:

myfunc = () ->
    id: 3
    name: 'myname'

But I want to be explicit about returning object.

myfunc = () ->
    return
        id: 3
        name: 'myname'

But I get "Unexpected 'INDENT'" error. What's wrong with the above code?


Solution 1:

myFunc = ->
  return {
    id   : 3
    name : 'myname'
  }

myFunc = ->
  return {} =
    id   : 3
    name : 'myname'

myFunc = ->
  # return
  id   : 3
  name : 'myname'

Solution 2:

you should put the return value on the same line or wrap it in () :

myFunc = () ->
  return id:3, name:'myname'

myFunc = () ->
  return (
    id: 3
    name: 'myname'
  )

Solution 3:

I think the best way is

myFunc = ->
  return (
    id: 3
    name: 'myname'
  )

because it fits the philosophy of functional programming.

Solution 4:

The previous answers are all correct. This works too:

myFunc = () -> 
    {
        id: 3
        name: 'myname'
    }