我想从另一个文件导出文件的所有方法。
目前我正在这样做,而且它有效。如何将下面两个合并为1个导出表达式
import * as db from './web/query';
export default db;
我尝试下面写了1行导出但都失败了
export * from './web/query'; //==error
export * as default from './web/query'; //==error
export * as {default} from './web/query'; //==error
export from from './web/query'; //== error
export default from './web/query'; //== error
错误表示
import db from '../db/index';
这里未定义db。然而,第一种方法起作用
文件内部'./web/query'看起来像
export function foo(){}
export function baar(){}
答案 0 :(得分:6)
你不能在ES2016。要创建模块名称空间对象,您需要在当前模块范围中为其指定标识符(如db
),然后重新导出该标识符。没有办法解决它。
然而,第1阶段proposal可以添加您尝试的export * as default from …
语法。
答案 1 :(得分:3)
如何将以下两个合并为1个导出表达式
你不能。
ES2015(和ES2016)没有提供允许您从文件导入所有命名导出的语法,并在单个语句中将对象(以及它们的属性)导出为默认值。
答案 2 :(得分:1)
您可以使用 export * from '<FILE>';
导出另一个文件的命名导出。
// a.js
export const one = '1';
export const two = '2';
// b.js
export * from './a.js';
// c.js
import { one, two } from './b.js';