Fwd: proposal of function return with object destructor
You did start in the right spot! Search esdiscuss.com for "pick notation", though - it's pretty much the same thing, but an expression instead.
(TL;DR: it was rejected as overly specific, since it's maybe saving a couple lines of code, and it's also pretty easy to write a utility function if you find yourself doing this a lot. Also, Lodash and similar do have utility methods for this kind of thing.)
I've had similar instances of using deconstruction as an annoying man-in-the-middle step; perhaps what is needed is a deconstruction operator, since assignment wouldn't work in, say a concise arrow function because it's not an expression:
// works, but is verbose (repeats declaration of deconstructed variables)
const result = doSomething()
.then({ propA, foo: { propB }) => ({ propA, propB }))
.then(doSomethingElse);
// doesn't work as assignment; assignment is not expression
const result = doSomething()
.then(x => { { propA, foo: { propB } } = x)
.then(doSomethingElse);
Perhaps what is needed is an operator that is effectively shorthand for creating a temporary object to hold the deconstructed assignments, and is allowed in expressions:
{ propA, foo: { propB } }) =< x
// equivalent to
Object.assign({}, { propA: x.propA }, { propB: x.foo.propB });
const result = doSomething()
.then(x => { { propA, foo: { propB } } <= x)
.then(doSomethingElse);
Ideally, I'd--
and then this email comes into the thread:
Isiah Meadows You did start in the right spot! Search esdiscuss.com for "pick
notation", though - it's pretty much the same thing, but an expression instead.
Well damnit...
An HTML attachment was scrubbed... URL: esdiscuss/attachments/20171010/e052cd3a/attachment