On Thu, May 19, 2016 at 8:59 AM, Michał Wadas <michalwa...@gmail.com> wrote: > Idea: > > function foo({bar, *: baz}) { > > } > > would be equivalent to: > > function foo(baz) { > const bar = baz.bar; > } > > Rationales: > - little better IDE support (argument name reveals intention) > - allows to write more concise code when handling case of getting common > values and handling whole object optionally > - improve pattern "use few properties of options object then pass it deeper" > - allows more expressive module import > - allows to more concise code when destructuring expression result > > import {*: rand, generateRandomInt} from 'fancy-random-module'; > import {*: moment, isMoment} from 'moment';
Other languages with destructing have a more explicit syntax for this (giving a name to the container as well as its pieces), so that it works in all the destructuring forms. In Haskell, for example, it looks like "baz@{bar}". This is usable with list destructuring, too. ~TJ _______________________________________________ es-discuss mailing list es-discuss@mozilla.org https://mail.mozilla.org/listinfo/es-discuss