Trailing commas in arguments list, imports and destructuring
Jussi Kalliokoski
jussi.kalliokoski at gmail.com
Sat Apr 25 16:54:02 UTC 2015
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 <mficarra at shapesecurity.com>
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
> <https://docs.google.com/document/d/1QbEE0BsO4lvl7NFTn5WXWeiEIBfaVUF7Dk0hpPpPDzU>
> .
>
> On Wed, Apr 22, 2015 at 8:15 AM, Jussi Kalliokoski <
> jussi.kalliokoski at gmail.com> wrote:
>
>> I just noticed that Babel support trailing commas in function arguments
>> lists, imports and destructuring as well:
>>
>>
>> http://babeljs.io/repl/#?experimental=true&evaluate=true&loose=false&spec=false&code=import%20%7B%0A%20%20voo%2C%0A%20%20doo%2C%0A%7D%20from%20%22.%2Fdat.js%22%3B%0A%0Alet%20%7B%0A%20%20x%2C%0A%20%20y%2C%0A%7D%20%3D%20voo%3B%0A%0Alet%20%5B%0A%20%20z%2C%0A%20%20m%2C%0A%5D%20%3D%20doo%3B%0A%0Afunction%20qoo%20(%0A%20%20x%2C%0A%20%20y%2C%0A)%20%7B%7D
>>
>> Is this correct behavior? I'm not
>>
>> 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
>> es-discuss at mozilla.org
>> https://mail.mozilla.org/listinfo/es-discuss
>>
>>
>
>
> --
> Shape Security is hiring outstanding individuals. Check us out at *https://shapesecurity.com/jobs/
> <https://shapesecurity.com/jobs/>*
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.mozilla.org/pipermail/es-discuss/attachments/20150425/f9195445/attachment.html>
More information about the es-discuss
mailing list