Shorter syntax for arrow function assignment

T.J. Crowder tj.crowder at farsightsoftware.com
Tue Oct 24 17:13:47 UTC 2017


Agree with Andrea on this one. Method syntax (in an object initializer, in
a `class`) creates a method (a non-arrow function with a [[HomeObject]]
slot), not an arrow function. This looks just like method syntax. The
absence of the arrow is too misleading.

I could see it as a shortcut for `export function foo() { }`, but not for
`export const foo = () => { };`.

-- T.J. Crowder

On Tue, Oct 24, 2017 at 6:01 PM, Andrea Giammarchi <
andrea.giammarchi at gmail.com> wrote:

> to me this `export foo() {}` makes sense only as shortcut for `export
> function foo() {}` and not as arrow, because arrow missing context and
> arguments will mislead everyone exporting a named function.
>
> -1
>
> On Tue, Oct 24, 2017 at 1:59 PM, Brian Blakely <anewpage.media at gmail.com>
> wrote:
>
>> As arrow function const assignments become the norm and non-arrows the
>> exception, allowing syntactical cruft to fall away makes sense to me.  It
>> might be premature based on overall 2015 adoption, but I don't see this
>> trend reversing.
>>
>> On Tue, Oct 24, 2017 at 12:54 PM, /#!/JoePea <joe at trusktr.io> wrote:
>>
>>> It can be confusing because it is too similar to non-arrow functions.
>>> The arrow syntax is clear in meaning.
>>>
>>> */#!/*JoePea
>>>
>>> On Tue, Oct 24, 2017 at 9:51 AM, Brian Blakely <anewpage.media at gmail.com
>>> > wrote:
>>>
>>>> This syntax is shorter, easier to write, and arguably easier to read.
>>>> What else does it need to offer?
>>>>
>>>> On Tue, Oct 24, 2017 at 12:48 PM, kai zhu <kaizhu256 at gmail.com> wrote:
>>>>
>>>>> -1
>>>>> this fails styleguide sanity-check.
>>>>>
>>>>> we currently have 3 common styles of declaring functions:
>>>>> 1. foo = function () {...}
>>>>> 2. function foo () {...}
>>>>> 3. foo = () => {...}
>>>>>
>>>>> does this extra 4th style offer anything new to justify making the
>>>>> javascript language even less consistent than it already is?  i say
>>>>> no.
>>>>>
>>>>>
>>>>> On 10/25/17, Brian Blakely <anewpage.media at gmail.com> wrote:
>>>>> > A prevalent pattern has emerged:
>>>>> >
>>>>> > `export const foo = ()=> { };`
>>>>> >
>>>>> > Taking a cue from short method syntax, this comes to mind as a
>>>>> possible
>>>>> > improvement:
>>>>> >
>>>>> > `export const foo() { };`
>>>>> >
>>>>> > Even better if we assume const:
>>>>> >
>>>>> > `export foo() { };`
>>>>> >
>>>>> > That is delicious.  Thoughts?
>>>>> >
>>>>>
>>>>
>>>>
>>>> _______________________________________________
>>>> es-discuss mailing list
>>>> es-discuss at mozilla.org
>>>> https://mail.mozilla.org/listinfo/es-discuss
>>>>
>>>>
>>>
>>
>> _______________________________________________
>> es-discuss mailing list
>> es-discuss at mozilla.org
>> https://mail.mozilla.org/listinfo/es-discuss
>>
>>
>
> _______________________________________________
> es-discuss mailing list
> es-discuss at mozilla.org
> https://mail.mozilla.org/listinfo/es-discuss
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.mozilla.org/pipermail/es-discuss/attachments/20171024/9bb6c6b0/attachment.html>


More information about the es-discuss mailing list