В ES2015 можно импортировать весь модуль как объект, свойства которого являются экспортом модуля:
import * as name from 'module';
Я нахожу это чрезвычайно полезным для пространства имен и использую его все время.
Также возможно реэкспортировать экспорт других модулей:
export { name } from 'module'; // selectively
export * from 'other-module'; // indiscriminately
Сейчас пытаюсь написать библиотеку с пространством имен в таком стиле. Интуитивный способ собрать все в модуле верхнего уровня будет таким:
export * as name from 'module';
Но это, кажется, не работает; Babel и Rollup отвергают его.
Я мог импортировать модуль как объект, создать клон, перебирая его ключи, и экспортировать его, но тогда это был бы просто старый динамический объект, поэтому я потерял бы огромные преимущества, которые предоставляет Rollup. .
Итак, неужели действительно нет способа сделать это с помощью декларативного синтаксиса модуля? Мне кажется, что этому нет оправдания.
export * as name from 'module';
. Как вы планируете использовать такой экспорт? Для импорта*
всегда требуется пространство именas X
, поэтому любое имя, которое вы укажете в операторе экспорта, в любом случае не будет иметь значения, верно? - person   schedule 26.11.2015name
— это имя, с которым экспортируется объект модуля. Например, если модуль abc содержитexport * as xyz from 'xyz'
, а выimport * as abc from 'abc'
, вы сможете получить доступ к экспорту xyzs черезabc.xyz
. - person Permutator   schedule 26.11.2015export * as Name from …
? - person Bergi   schedule 11.03.2019