首页 > 解决方案 > 检索所有命名的 ES6 导入

问题描述

有没有办法检索所有命名 ES6 导入的列表?

例如:

import { A } from 'file_A';
import { B, C } from 'file_B';

let { A, B, C } = imports; // Where imports is a fictional system object

标签: javascriptecmascript-6

解决方案


它可以在 ES2018 中使用对象扩展语法来实现:

import * as fileA from 'file_A';
import * as fileB from 'file_B';

let { A, B, C } = {...fileA, ...fileB};

或者Object.assign在 ES6 中:

let { A, B, C } = Object.assign({}, fileA, fileB);

在捆绑工具(Webpack、Rollup)的情况下,这会强制将所有导出内容包含在一个捆绑包中,并扼杀摇树优化。

请注意,default以这种方式无法使用多个导出或其他具有相同名称的导出。


推荐阅读