lau*_*kok 6 javascript ecmascript-6
我有一些功能,我想将它们保存在外部js文件中.例如.
在functions.js中
var double = function(x) {
return x + x;
}
export { double };
Run Code Online (Sandbox Code Playgroud)
然后在我的主要js文件中:
import double from './functions';
...
double(2)
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
Uncaught TypeError: (0 , c.default) is not a function
at bundle.min.js:44
Run Code Online (Sandbox Code Playgroud)
当我读到44行时:
(0, _functions2.default)(2);
Run Code Online (Sandbox Code Playgroud)
有什么想法吗?我错过了什么?
Rya*_*Zim 10
您将默认和命名导出混淆.
如果export { double }你必须import { double } from './functions';
如果您只有一个导出,则最好使用默认导出:
export default double;
Run Code Online (Sandbox Code Playgroud)
然后你可以 import double from './functions':
原因是命名导出允许您仅导入模块的一部分.例如:
export function add (a, b) { return a + b; }
export function subtract (a, b) { return a - b; }
Run Code Online (Sandbox Code Playgroud)
然后你可以import { add } from './math.js';不导入subtract.
但是,如果仅从模块导出一个函数,则默认导出更方便.