ESM exporting getters and setters.

J Decker d3ck0r at gmail.com
Fri Sep 21 20:25:55 UTC 2018


On Fri, Sep 21, 2018 at 1:13 PM J Decker <d3ck0r at gmail.com> wrote:

>
>
> 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};
>
I missed the point a little... would be something like

const foofoo = foo.foo; // which doesn't result as a setter/getter
reference, but the value...
export {foofoo}




>
> // --- 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/2858e846/attachment.html>


More information about the es-discuss mailing list