JerryFox
JerryFox

Reputation: 625

Javascript Es6 default export

I just want to double check since I am trying to do this ES6 export default:

var Member = function(){}
export {
    Member as default
 };

JShint is error-ing out with this syntax (es6 enabled) but I thought it was valid. Is this really invalid or what is a valid way for writing a default export with the export syntax as

 export {
    Member 
 };

I was using this as reference: http://www.2ality.com/2014/09/es6-modules-final.html The example they gave was:

//------ module1.js ------
export default 123;
//------ module2.js ------
const D = 123;
export { D as default };

Why is this module2's 2nd line valid? (or is it?)

Upvotes: 2

Views: 1038

Answers (1)

Bergi
Bergi

Reputation: 664528

(As so often) this is is jshint's fault. The line is indeed valid, ES6 Export syntax does permit the use of any IdentifierName - which includes keywords such as default - for the exported name of an ExportClause.

I would however discourage from using it. Default exports are much easier to write and read in the export default notation, such as

var Member = function() {};
export default Member;
// or
export default function Member() {}

Admittedly export default Member; is not exactly equivalent to export { Member as default } but unless you are try to reassign it (you're not, right?) it doesn't make a difference.

Upvotes: 3

Related Questions