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 =>
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
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
-
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,
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
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
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"
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
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,
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
10 matches
Mail list logo