Re:JavaScript Pattern Matching Proposal
by always_good on Thursday April 26, 2018 @12:57AM
(#16928908)
Every example in on the readme demonstrates that using an identifier in that position becomes destructured assignment.
found the answer in the full proposal. Variables will always be assigned to, never checked for equality.
To me this is pretty average and seems like it will cause magic numbers/strings/etc if I can't use constants where it makes sense. The proposed solution is to do something like
{ status: 200 } if (x === foo) => // do something
which just seems (for this type of use case, maybe not all) like more boilerplate code for no real benefit over just doing something like if (res.status === 200 && res.x === foo) //do something
I would much prefer if there was some sort of special operator used to either check equality or to destructure when matching so it is obvious what the code is doing.
Is it checking if action.type === 'set-visibility-filter' && action.filter === 'foo' or is it destructuring the value of action.filter into visFilter?