Trailing commas in arguments list, imports and destructuring
Jussi Kalliokoski
jussi.kalliokoski at gmail.com
Wed Apr 22 15:15:35 UTC 2015
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?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.mozilla.org/pipermail/es-discuss/attachments/20150422/1e8fc0cc/attachment.html>
More information about the es-discuss
mailing list