using the … spread syntax in javascript es6 named exports

Object rest spread is stage 3 proposal and not a part of any spec (will probably be included in ES2018).

More importantly, export has syntax that mimics existing JS syntax but doesn’t interpret { ... } as an expression. export syntax was strictly defined because ES2015 modules are supposed to be statically analyzed. This is one of their benefits, but it requires the developer to specify exports and imports explicitly.

Since { ...wrappedReactBootstrap } introduces dynamic export (it was used here exactly for this purpose), it isn’t supported by ES2015 module export and it is very unlikely that it will be.

If it is necessary to provide dynamic behaviour for the export, it can be exported and imported as named or default object.

import * as reactBootstrap from 'react-bootstrap';

export default doFunnyThingsTo(reactBootstrap);

And used like

import wrappedReactBootstrap from '...';

const { funny, thing } = wrappedReactBootstrap;

Obviously, wrappedReactBootstrap object won’t get the benefits of ES2015 modules this way, e.g. tree-shaking.

Leave a Comment

Hata!: SQLSTATE[HY000] [1045] Access denied for user 'divattrend_liink'@'localhost' (using password: YES)