<div dir="ltr"><div><div><div><div><div><div>Yes, in such simple case you save only few keystrokes.<br><br></div>Imagine more complicated example:<br><br></div><span style="font-family:monospace,monospace">function initServer(config) {<br></span></div><span style="font-family:monospace,monospace">    const {env, database, cache, logger} = config;<br></span></div><span style="font-family:monospace,monospace">    const {isDev} = env;<br></span></div><span style="font-family:monospace,monospace"></span></div><div><span style="font-family:monospace,monospace">    implementLogger(global, logger, isDev);<br></span></div><div><span style="font-family:monospace,monospace">    return Promise.all([databaseProvider(database), cacheProvider(cache), envManager(env)]).then(([database, cache, env])=>({database, cache}));<br></span></div><div><div><div><div><div><div><div><span style="font-family:monospace,monospace">}<br></span><div><div><br></div><div>It can be replaced by simpler:<br><br><span style="font-family:monospace,monospace">function initServer({env: {isDev, *: env}, database, cache, logger, *: config}) {</span><span style="font-family:monospace,monospace"><br></span><div><span style="font-family:monospace,monospace">    implementLogger(global, logger, isDev);<br></span></div><div><span style="font-family:monospace,monospace">    globalLogger.log(config);<br></span></div><div><span style="font-family:monospace,monospace">   
 return Promise.all([databaseProvider(database), cacheProvider(cache, isDev), 
envManager(env)]).then(([database, cache, env])=>({database, 
cache, env}));<br></span></div><span style="font-family:monospace,monospace">}<br></span><div><br></div><div>When destructuring nested objects you can potentially save one line per nest.<br><br></div><br></div></div></div></div></div></div></div></div></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, May 19, 2016 at 9:47 PM, Isiah Meadows <span dir="ltr"><<a href="mailto:isiahmeadows@gmail.com" target="_blank">isiahmeadows@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><p dir="ltr">How is it any different than this, to borrow your first example:</p>
<p dir="ltr">```js<span class=""><br>
function foo(baz) {<br>
    const {bar} = baz<br></span>
    // do things<br>
}<br>
```</p>
<br><div class="gmail_quote"><div><div class="h5"><div dir="ltr">On Thu, May 19, 2016, 11:59 Michał Wadas <<a href="mailto:michalwadas@gmail.com" target="_blank">michalwadas@gmail.com</a>> wrote:<br></div></div></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div class="h5"><div dir="ltr"><div><div><div><div>Idea:<br><br></div><span style="font-family:monospace,monospace">function foo({bar, *: baz}) {<br><br>}</span><br><br></div>would be equivalent to:<br><br></div><span style="font-family:monospace,monospace">function foo(baz) {<br></span></div><span style="font-family:monospace,monospace">   const bar =  baz.bar;<br></span><div><div><span style="font-family:monospace,monospace">}</span><br><br></div><div><font face="arial,helvetica,sans-serif">Rationales:<br></font></div><div><font face="arial,helvetica,sans-serif">- little better IDE support (argument name reveals intention)<br></font></div><div><font face="arial,helvetica,sans-serif">- allows to write more concise code when handling case of getting common values and handling whole object optionally<br></font></div><div><font face="arial,helvetica,sans-serif">- improve pattern "use few properties of options object then pass it deeper"<br></font></div><div><font face="arial,helvetica,sans-serif">- allows more expressive module import<br></font></div><div><font face="arial,helvetica,sans-serif">- allows to more concise code when destructuring expression result<br></font></div><div><font face="arial,helvetica,sans-serif"><br></font></div><div><font face="arial,helvetica,sans-serif">import {*: rand, generateRandomInt} from 'fancy-random-module';<br></font></div><div><font face="arial,helvetica,sans-serif">import {*: moment, isMoment} from 'moment';<br><br></font></div></div></div></div></div><span class="">
_______________________________________________<br>
es-discuss mailing list<br>
<a href="mailto:es-discuss@mozilla.org" target="_blank">es-discuss@mozilla.org</a><br>
<a href="https://mail.mozilla.org/listinfo/es-discuss" rel="noreferrer" target="_blank">https://mail.mozilla.org/listinfo/es-discuss</a><br>
</span></blockquote></div>
</blockquote></div><br></div>