Why Is `Export Default Const` invalid?

I see that the following is fine:

const Tab = connect( mapState, mapDispatch )( Tabs );
export default Tab;

However, this is incorrect:

export default const Tab = connect( mapState, mapDispatch )( Tabs );

Yet this is fine:

export default Tab = connect( mapState, mapDispatch )( Tabs );

Can this be explained please why const is invalid with export default? Is it an unnecessary addition & anything declared as export default is presumed a const or such?

Answers 1

  • const is like let, it is a LexicalDeclaration (VariableStatement, Declaration) used to define an identifier in your block.

    You are trying to mix this with the default keyword, which expects a HoistableDeclaration, ClassDeclaration or AssignmentExpression to follow it.

    Therefore it is a SyntaxError.


    If you want to const something you need to provide the identifier and not use default.

    export by itself accepts a VariableStatement or Declaration to its right.


    AFAIK the export in itself should not add anything to your current scope.


    The following is fineexport default Tab;

    Tab becomes an AssignmentExpression as it's given the name default ?

    export default Tab = connect( mapState, mapDispatch )( Tabs ); is fine

    Here Tab = connect( mapState, mapDispatch )( Tabs ); is an AssignmentExpression.


Sorry, you do not have a permission to answer to this question.