e.g。
// lib.js
export function f1() {}
export function f2() {}
export * as default; // invalid syntax
然后在另一个文件中:
// app.js
import lib from './lib.js';
lib.f1();
有没有办法在不明确导出每个函数的情况下执行此操作? e.g。
export default {f1, f2}; // tedious
PS:我知道我可以import * as lib from './lib.js'
。
答案 0 :(得分:2)
import * as lib from './lib';
export default lib;
应该足够了。因此模块会导入所有自己的导出,然后将自身导出为默认导出。
我是第二个Bergi的答案,但从API设计的角度来看,这并不是很好,而且可能会慢一点。如果某些东西正在使用你的模块并需要从中导入,它应该知道它的导入内容,或者单独询问它们,你的模块不应该为它们做。
答案 1 :(得分:1)
我知道我可以
import * as lib from './lib.js'
。
你真的应该。不要让你的API比它需要的更混乱。
如果您仍想要默认导出自己的模块命名空间对象,也可以执行
export * as default from "./lib.js"; // self-reference
答案 2 :(得分:0)
继承人另一个选择:
lib.js
export default {
someFunctionOne: () => {
},
someFunctionTwo: () => {
},
someFunctionThree: () => {
}
};
app.js
import lib from './lib';
lib.someFunctionOne();