Why is "export default var a = 1;" invalid syntax?

Jesse McCarthy es-discuss-2015-02 at jessemccarthy.net
Wed Feb 18 14:02:40 PST 2015


I understand. My question is if I'm not putting anything in the block, I 
still have to include the empty block?

Thanks,
Jesse

----- Original Message ----- 
From: "caridy" <caridy at gmail.com>
To: "Jesse McCarthy" <es-discuss-2015-02 at jessemccarthy.net>
Cc: <es-discuss at mozilla.org>
Sent: Wednesday, February 18, 2015 4:44 PM
Subject: Re: Why is "export default var a = 1;" invalid syntax?


that’s part of the class declaration, like in:

export default class Foo extends Backbone {
      constructor() {
           …
      }
      ...
}

/caridy

> On Feb 18, 2015, at 4:40 PM, Jesse McCarthy 
> <es-discuss-2015-02 at jessemccarthy.net> wrote:
>
>> Jesse, you can do:
>> `export default class Foo extends Backbone {}`
>
> Ok, thanks. The empty block is required? The part after `extends` is just 
> an expression that evaluates to a function, right? So I could do this 
> right (where Backbone.Model.extend() returns a function)?:
>
> export default class Klass extends Backbone.Model.extend() {}
> Klass.prototype.whatever = whatever;
>
> Thanks,
> Jesse
>
> ----- Original Message ----- From: "caridy" <caridy at gmail.com>
> To: "Jesse McCarthy" <es-discuss-2015-02 at jessemccarthy.net>
> Cc: <es-discuss at mozilla.org>
> Sent: Tuesday, February 17, 2015 5:38 PM
> Subject: Re: Why is "export default var a = 1;" invalid syntax?
>
>
> Jesse, you can do:
>
> `export default class Foo extends Backbone {}`
>
> in case you want to reference to the exported class in the body of the 
> module, or you can do:
>
> `export default class extends Backbone {}`
>
> /caridy
>
>> On Feb 17, 2015, at 4:47 PM, Jesse McCarthy 
>> <es-discuss-2015-02 at jessemccarthy.net> wrote:
>>
>> Re: 
>> https://esdiscuss.org/topic/why-is-export-default-var-a-1-invalid-syntax
>>
>> I find myself wanting to do this kind of thing with a function returned 
>> from a function, e.g. when using Backbone, and it seems silly that I 
>> can't:
>>
>> export default var Klass = Backbone.Model.extend();
>> Klass.prototype.whatever = whatever;
>> // ...
>>
>> For that use case will the following be functionally identical? Any 
>> gotchas with circular dependencies or anything?
>>
>> A)
>> var Klass = Backbone.Model.extend();
>> Klass.prototype.whatever = whatever;
>> export default Klass;
>>
>> B)
>> var Klass = Backbone.Model.extend();
>> Klass.prototype.whatever = whatever;
>> export { Klass as default };
>>
>> C)
>> var Klass = Backbone.Model.extend();
>> export default Klass;
>> Klass.prototype.whatever = whatever;
>>
>> D)
>> var Klass = Backbone.Model.extend();
>> export { Klass as default };
>> Klass.prototype.whatever = whatever;
>>
>> If I was willing to use class syntax could I do this?
>>
>> export default class Klass extends Backbone.Model.extend();
>> Klass.prototype.whatever = whatever;
>>
>>
>> Glen Huang said:
>>> I think this is illegal, should be {a: a}
>>
>> Sorry, I'm probably missing something obvious, but what is this referring 
>> to?
>>
>> _______________________________________________
>> es-discuss mailing list
>> es-discuss at mozilla.org
>> https://mail.mozilla.org/listinfo/es-discuss
>




More information about the es-discuss mailing list