Re: Re: Proposal: Conditional `catch` in Promises

2018-04-25 Thread Ayush Gupta
It might be worth **explicitly** mentioning that it's not about types either, the benefit with using functions as the filter is that we can tackle a lot of cases. Consider this: ```js return somePromise .catch((reason) => reason instanceof ValidationError, reason =>

Re: Re: Proposal: Conditional `catch` in Promises

2018-04-25 Thread Bob Myers
What do you mean by "approach TypeScript"? Do you mean propose this feature to the TS team? TS is not about new language features (with a few exceptions). It's about typing. They're quite careful about not forking the language. > Not sure if that supports typed errors No, it doesn't. Bob On

Re: Proposal: spread assignment operator

2018-04-25 Thread Jeremy Martin
By way of context, some similar ideas have been previously discussed: - https://esdiscuss.org/topic/picking-deconstructing-properties-into-object-literals - https://esdiscuss.org/topic/destructuring-an-object-into-a-new-object-like-underscore-pick-but-esier -

Re: Proposal: spread assignment operator

2018-04-25 Thread Arutyunyan Artyom
 I think it can be looks like: https://gist.github.com/artalar/ea8512546a3675648615a25e846096a6 25.04.2018, 18:58, "Isiah Meadows" :It doesn't. But with objects, it's not a cheap operation to simply duplicate, and they aren't normally immutable like primitives. Furthermore,

Re: Re: Proposal: Conditional `catch` in Promises

2018-04-25 Thread Michael J. Ryan
Maybe approach typescript on this one... Not sure if that supports typed errors like C# does, but would probably suit you well. On Wed, Apr 25, 2018, 08:31 Isiah Meadows wrote: > I'd still prefer we wait until pattern matching [1] gets addressed first, > then tackling

Re: Proposal: spread assignment operator

2018-04-25 Thread Isiah Meadows
It doesn't. But with objects, it's not a cheap operation to simply duplicate, and they aren't normally immutable like primitives. Furthermore, why is it for objects, not arrays? (I'm pushing that second question as a point of potential confusion - remember the user.) On Wed, Apr 25, 2018, 11:45

Re: Proposal: spread assignment operator

2018-04-25 Thread Arutyunyan Artyom
spread assignment not mutate, it reassign, like "+=" and other. if (('a = {...a,...b}'.length > 'a ...= b'.length) === ('n = n+1'.length > 'n += 1'.length)) { console.log('why "addition assignment" is necessary, but "spread assignment" is not?'); }   25.04.2018, 18:21, "Isiah Meadows"

Re: Re: Proposal: Conditional `catch` in Promises

2018-04-25 Thread Isiah Meadows
I'd still prefer we wait until pattern matching [1] gets addressed first, then tackling this. Error types are represented about 50 different ways in JS, with subtyping only being one (used by the standard kind of). Node appends an `err.code`, and the DOM adds a similar type, just using a common

Re: Proposal: spread assignment operator

2018-04-25 Thread Isiah Meadows
Note: `Object.assign` mutates its first argument and (with only obscure caveats) does exactly this. Not sure syntax is necessary here. Oh, and arrays also have the common idiom `array.push(...values)` (but they could use an `Array.prototype.pushAll` to avoid polluting arguments lists). On Wed,

Proposal: spread assignment operator

2018-04-25 Thread Артём Арутюнян
I propose spread assignment operator: var obj = { test1: 1 };var anotherObj = { test2: 2 };obj ...= { test2: 2 }; // == (obj = { ...obj, ...anotherObj })// { test1: 1, test2: 2 } I'm surprised it wasn't in the original implementation ___ es-discuss