> On 26 Apr 2018, at 12:08 PM, Ayush Gupta <ayushg3...@gmail.com> wrote: > > 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 => > handleValidationError(reason)) > .catch((reason) => reason.code === 'ENOENT', reason => > handleENOENT(reason)) > .catch(reason => handleOtherErrors(reason)) // catch all others > ``` >
can someone give a sane javascript styleguide on when to use the above and when to use this code below? otherwise, we’re simply adding to the industry-painpoint of the language having too many cross-cutting design-patterns, leading to hard-to-maintain web-projects with inconsistent code across its components. ```js return somePromise .catch((function (reason) { if (reason instanceof ValidationError) { return handleValidationError(reason); } if (reason.code === 'ENOENT') { return handleENOENT(reason); } return handleOtherErrors(reason)) // catch all others }); ``` kai zhu kaizhu...@gmail.com > > On Wed, Apr 25, 2018 at 10:25 PM, Bob Myers <r...@gol.com > <mailto:r...@gol.com>> wrote: > 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 Wed, Apr 25, 2018 at 9:49 PM, Michael J. Ryan <track...@gmail.com > <mailto:track...@gmail.com>> wrote: > 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 <isiahmead...@gmail.com > <mailto:isiahmead...@gmail.com>> wrote: > 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 > error subclass. And in some cases where errors are planned (but exceptions > are more convenient), you sometimes see non-errors thrown. So there needs to > be a means of catching all of them, and `if` checks get verbose and noisy in > a hurry. > > On Wed, Apr 25, 2018, 00:11 Ayush Gupta <ayushg3...@gmail.com > <mailto:ayushg3...@gmail.com>> wrote: > We could potentially provide the same functionality in `try/catch` by > extending the signature of `catch` to > > ```js > try { > > } catch(<expression_var>, <function_expression>) { > > } > ``` > > If `<function_expression>` evaluates to truthy, invoke the `catch` block, > otherwise don't. > _______________________________________________ > es-discuss mailing list > es-discuss@mozilla.org <mailto:es-discuss@mozilla.org> > https://mail.mozilla.org/listinfo/es-discuss > <https://mail.mozilla.org/listinfo/es-discuss> > _______________________________________________ > es-discuss mailing list > es-discuss@mozilla.org <mailto:es-discuss@mozilla.org> > https://mail.mozilla.org/listinfo/es-discuss > <https://mail.mozilla.org/listinfo/es-discuss> > > _______________________________________________ > es-discuss mailing list > es-discuss@mozilla.org <mailto:es-discuss@mozilla.org> > https://mail.mozilla.org/listinfo/es-discuss > <https://mail.mozilla.org/listinfo/es-discuss> > > > > _______________________________________________ > es-discuss mailing list > es-discuss@mozilla.org > https://mail.mozilla.org/listinfo/es-discuss
_______________________________________________ es-discuss mailing list es-discuss@mozilla.org https://mail.mozilla.org/listinfo/es-discuss