Re:Using the switch(true) pattern in JavaScript
by CloselyChunky on Monday April 12, 2021 @11:46AM
(#26780722)
In my opinion this pattern is better if you write it like this:
_ = isDefined(user) || throw new Error("user must be defined")
This reads way more natural for me. "A user is defined OR throw an error"...I've also seen this in Perl (`do_something() || die()`) and shell scripts (`grep -q || die "not found"`).
Re:Using the switch(true) pattern in JavaScript
by pxx on Monday April 12, 2021 @03:07PM
(#26783694)
In perl you would want to use `or` instead of `||` to take advantage of the low precedence, so you can type things like `dostuff $foo or die` which is logically 'do stuff, and if it fails, die' as opposed to 'die if $foo is false', which you'd get with ||
Re:Using the switch(true) pattern in JavaScript
by lhorie on Monday April 12, 2021 @12:25PM
(#26781332)
It's a stage 2 proposal, which technically can be used today via babel[0] (though personally, I don't recommend using stuff below stage 4)
[0] https://babeljs.io/docs/en/babel-plugin-proposal-throw-expre...
Re:Using the switch(true) pattern in JavaScript
by IggleSniggle on Monday April 12, 2021 @04:54PM
(#26785041)
My preference for this is to use an assertion function, eg in nodejs:
assert(isDefined(user),”User must be defined”) // throws if Falsy
Doesn't seem to be valid JS, can't remember where I got it from