Syntax to pick named exports from a module
Gray Zhang
otakustay at gmail.com
Tue Feb 21 13:13:30 UTC 2017
In many cases we need *some* named exports from a module, but currently
there is no syntax to support things like:
import {flatMap, uniq} as _ form 'lodash';
Currently supported syntax could be:
import * as tmp from 'lodash';
let _ = {flatMap: tmp.flatMap, uniq: tmp.uniq};
There are reasons for me to downvote this syntax:
1. It causes extra lines of code without improving readability
2. There is no object property pick syntax so I’m required to write
redundant code
3. The let statement is not forced to be static so it is not that easy
for tree shaking, once a developer use dynamic statements in the let
line it breaks tree shaking
or we may code like this:
import {flatMap, uniq} from 'lodash';
let _ = {flatMap, uniq};
Still it comes with some shortcomings:
1. It declares too many variables, variables which only used once is not
a good smell
2. It cost more efforts to adding or removing selected exports, it could
fail if I just add a named export in import statement but forget to add
it in the let line
In this case, I think a import {x, y} as z from 'some' syntax can help, and
it doesn’t seem to conflict with any existing sytnax
--
Gray Zhang
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.mozilla.org/pipermail/es-discuss/attachments/20170221/16e95e1a/attachment.html>
More information about the es-discuss
mailing list