AFAICT, there is no current consensus on whether destructuring assignment is
refutable by default or not:
https://github.com/rwldrn/tc39-notes/blob/master/es6/2013-07/july-23.md#44-consider-deferring-es6-refutable-matching
Could we make destructuring assignment fail soft and introduce a marker for
refutable parts of a pattern (e.g. a prefix `!`):
let { !a: foo, b: bar } = { a: 1 }; // ok: foo = 1, b = undefined
let { !a: foo, b: bar } = { }; // exception
This would have one advantage: It would be possible to bring this operator to
parameter declarations (allowing one to declaratively specify a minimum arity).
Then destructuring assignment and parameter handling would work very similarly.
function bla(!mandatoryArg, optionalArg1, optionalArg2 = 123) {
...
}
Axel
--
Dr. Axel Rauschmayer
[email protected]
home: rauschma.de
twitter: twitter.com/rauschma
blog: 2ality.com
_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss