ESM exporting getters and setters.

J Decker d3ck0r at gmail.com
Fri Sep 21 20:13:12 UTC 2018


On Thu, Sep 20, 2018 at 6:00 PM Jordan Harband <ljharb at gmail.com> wrote:

> The getter part is already how it works - you can `export let foo =
> false;` and then later `foo = true`; and then `export function setFoo(v) {
> foo = v; }`. Why is the getter/setter syntax a significant improvement over
> this?
>
> On Thu, Sep 20, 2018 at 4:21 PM, Michael J. Ryan <tracker1 at gmail.com>
> wrote:
>

If you removed just the export; it wouldn't be valid code....


>     // myFoo.mjs
>>     _hiddenFoo = false;
>>     /*export*/ get foo() {
>>       return _hiddenFoo;
>>     }
>>
>>     /*export*/ set foo(value) {
>>       _hiddenFoo = !!value;
>>     }
>>
>>
    /*export*/ get foo() {
                   ^^^

SyntaxError: Unexpected identifier

var hiddenFoo;
var foo = {
   get foo() {
      return _hiddenFoo;
    },

    set foo(value) {
      _hiddenFoo = !!value;
    }
}
export {foo};

// --- main
 import {foo} from './zz.mjs';

console.log( "what is foo?", foo );

// -- output

what is foo? { foo: [Getter/Setter] }




> Not sure if this has been discussed, but would be a nice feature to have
>> in some cases... I know, total side effects and mutations, all the same,
>> would be a nice to have in a few cases.
>>
>> --
>> Michael J. Ryan
>> 480-270-4509
>> https://www.tracker1.info/
>> me at tracker1.info
>> tracker1 at gmail.com
>>
>> _______________________________________________
>> es-discuss mailing list
>> es-discuss at mozilla.org
>> https://mail.mozilla.org/listinfo/es-discuss
>>
>>
> _______________________________________________
> es-discuss mailing list
> es-discuss at mozilla.org
> https://mail.mozilla.org/listinfo/es-discuss
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.mozilla.org/pipermail/es-discuss/attachments/20180921/1d6b998a/attachment.html>


More information about the es-discuss mailing list