Trailing commas in arguments list, imports and destructuring

classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

Trailing commas in arguments list, imports and destructuring

Jussi Kalliokoski
FWIW as I already use trailing commas object and array literals for better diffs, I really like this feature as it comes in handy especially in function signatures where you define types (TypeScript/flow style annotations), for example:

function sort <T> (
    array : Array<T>,
    compareFn : ((left: T, right: T) => number),
) : Array<T> {
    ...
}


as well as import statements for modules that declare constants:

import {
    BRAND_COLOR,
    DEFAULT_TEXT_COLOR,
    DARK_GRAY,
    LIGHT_GRAY,
} from "./constants/COLORS";


not to mention "options object" style function signatures:

class Person {
    constructor ({
        firstName,
        lastName,
        birthDate,
        country,
        city,
        zipCode,
    }) {
        this.firstName = firstName;
        this.lastName = lastName;
        this.birthDate = birthDate;
        this.country = country;
        this.city = city;
        this.zipCode = zipCode;
    }
}


To me, the spec language as per Jason's HTML version looks like at least for destructuring this is supported, but at least I can't read the spec to allow trailing commas in function signatures. At least this doesn't seem to be incorporated into the spec:

https://esdiscuss.org/notes/2014-09/trailing_comma_proposal.pdf

Is the proposal still on track for ES7 and am I correct in my reading of the destructuring allowing trailing commas?

_______________________________________________
es-discuss mailing list
[hidden email]
https://mail.mozilla.org/listinfo/es-discuss
Reply | Threaded
Open this post in threaded view
|

Re: Trailing commas in arguments list, imports and destructuring

Sebastian McKenzie
Note that you’ve got the experimental REPL option enabled which means all transformers are enabled which includes the `es7.trailingFunctionCommas` one which allows trailing commas in function parameter lists and call expressions.


ObjectBindingPattern[Yield,GeneratorParameter] :

  { BindingPropertyList[?Yield,?GeneratorParameter] , }




ArrayBindingPattern[Yield,GeneratorParameter] :

 [ BindingElementList[?Yield, ?GeneratorParameter] , Elisionopt BindingRestElement[?Yield, ?GeneratorParameter]opt]




And import specifiers allow trailing commas too (https://people.mozilla.org/~jorendorff/es6-draft.html#sec-imports

):



NamedImports :

 { ImportsList , }




On Wed, Apr 22, 2015 at 4:16 PM, Jussi Kalliokoski <[hidden email]> wrote:

FWIW as I already use trailing commas object and array literals for better diffs, I really like this feature as it comes in handy especially in function signatures where you define types (TypeScript/flow style annotations), for example:

function sort <T> (
    array : Array<T>,
    compareFn : ((left: T, right: T) => number),
) : Array<T> {
    ...
}


as well as import statements for modules that declare constants:

import {
    BRAND_COLOR,
    DEFAULT_TEXT_COLOR,
    DARK_GRAY,
    LIGHT_GRAY,
} from "./constants/COLORS";


not to mention "options object" style function signatures:

class Person {
    constructor ({
        firstName,
        lastName,
        birthDate,
        country,
        city,
        zipCode,
    }) {
        this.firstName = firstName;
        this.lastName = lastName;
        this.birthDate = birthDate;
        this.country = country;
        this.city = city;
        this.zipCode = zipCode;
    }
}


To me, the spec language as per Jason's HTML version looks like at least for destructuring this is supported, but at least I can't read the spec to allow trailing commas in function signatures. At least this doesn't seem to be incorporated into the spec:

https://esdiscuss.org/notes/2014-09/trailing_comma_proposal.pdf

Is the proposal still on track for ES7 and am I correct in my reading of the destructuring allowing trailing commas?


_______________________________________________
es-discuss mailing list
[hidden email]
https://mail.mozilla.org/listinfo/es-discuss
Reply | Threaded
Open this post in threaded view
|

Re: Trailing commas in arguments list, imports and destructuring

Michael Ficarra-2
In reply to this post by Jussi Kalliokoski
See https://github.com/tc39/ecma262. This proposal is currently at stage one. To find out more about what that means, read the process document.

On Wed, Apr 22, 2015 at 8:15 AM, Jussi Kalliokoski <[hidden email]> wrote:
FWIW as I already use trailing commas object and array literals for better diffs, I really like this feature as it comes in handy especially in function signatures where you define types (TypeScript/flow style annotations), for example:

function sort <T> (
    array : Array<T>,
    compareFn : ((left: T, right: T) => number),
) : Array<T> {
    ...
}


as well as import statements for modules that declare constants:

import {
    BRAND_COLOR,
    DEFAULT_TEXT_COLOR,
    DARK_GRAY,
    LIGHT_GRAY,
} from "./constants/COLORS";


not to mention "options object" style function signatures:

class Person {
    constructor ({
        firstName,
        lastName,
        birthDate,
        country,
        city,
        zipCode,
    }) {
        this.firstName = firstName;
        this.lastName = lastName;
        this.birthDate = birthDate;
        this.country = country;
        this.city = city;
        this.zipCode = zipCode;
    }
}


To me, the spec language as per Jason's HTML version looks like at least for destructuring this is supported, but at least I can't read the spec to allow trailing commas in function signatures. At least this doesn't seem to be incorporated into the spec:

https://esdiscuss.org/notes/2014-09/trailing_comma_proposal.pdf

Is the proposal still on track for ES7 and am I correct in my reading of the destructuring allowing trailing commas?

_______________________________________________
es-discuss mailing list
[hidden email]
https://mail.mozilla.org/listinfo/es-discuss




--
Shape Security is hiring outstanding individuals. Check us out at https://shapesecurity.com/jobs/

_______________________________________________
es-discuss mailing list
[hidden email]
https://mail.mozilla.org/listinfo/es-discuss
Reply | Threaded
Open this post in threaded view
|

Re: Trailing commas in arguments list, imports and destructuring

Jussi Kalliokoski

Thanks! Had completely missed that GH repo's existence. :)

Cool that this is moving forward!

Thanks to Sebastian for the explanation as well!


On Thu, 23 Apr 2015 18:46 Michael Ficarra <[hidden email]> wrote:
See https://github.com/tc39/ecma262. This proposal is currently at stage one. To find out more about what that means, read the process document.

On Wed, Apr 22, 2015 at 8:15 AM, Jussi Kalliokoski <[hidden email]> wrote:
FWIW as I already use trailing commas object and array literals for better diffs, I really like this feature as it comes in handy especially in function signatures where you define types (TypeScript/flow style annotations), for example:

function sort <T> (
    array : Array<T>,
    compareFn : ((left: T, right: T) => number),
) : Array<T> {
    ...
}


as well as import statements for modules that declare constants:

import {
    BRAND_COLOR,
    DEFAULT_TEXT_COLOR,
    DARK_GRAY,
    LIGHT_GRAY,
} from "./constants/COLORS";


not to mention "options object" style function signatures:

class Person {
    constructor ({
        firstName,
        lastName,
        birthDate,
        country,
        city,
        zipCode,
    }) {
        this.firstName = firstName;
        this.lastName = lastName;
        this.birthDate = birthDate;
        this.country = country;
        this.city = city;
        this.zipCode = zipCode;
    }
}


To me, the spec language as per Jason's HTML version looks like at least for destructuring this is supported, but at least I can't read the spec to allow trailing commas in function signatures. At least this doesn't seem to be incorporated into the spec:

https://esdiscuss.org/notes/2014-09/trailing_comma_proposal.pdf

Is the proposal still on track for ES7 and am I correct in my reading of the destructuring allowing trailing commas?

_______________________________________________
es-discuss mailing list
[hidden email]
https://mail.mozilla.org/listinfo/es-discuss




--
Shape Security is hiring outstanding individuals. Check us out at https://shapesecurity.com/jobs/

_______________________________________________
es-discuss mailing list
[hidden email]
https://mail.mozilla.org/listinfo/es-discuss