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

Reply via email to