导出函数不是函数?
不知道为什么不把它看作一个函数:
impl.js
export default function(callback){ return callback(); };
test.js
import {myModule} from '../../src/impl.js' import {expect} from 'chai'; const module = myModule; describe('', () => { it('should callback when resolve is invoked', () => { module(resolve => { resolve('test'); }).then(value => { expect(value).to.equal('test'); }); }); });
错误: TypeError: module is not a function
module
不是一个function
因为它接收到它的值myModule
也不是一个function
。
而且,这是因为您没有使用非常正确的语法来import
export default
。 为此,您需要删除myModule
的大括号:
import myModule from '../../src/impl.js'
来自MDN :
句法
import *defaultMember* from *"module-name"*;
使用大括号, import
将通过名称匹配特定的export
。
import { myModule } from '...';
对应于:
export let myModule = ...;
export function myModule() { ... };
而且, impl.js
不会导出任何真正名为myModule
东西。
您没有名为myModule
的导出。 您只有一个默认导出。
要么使用命名的导出
export function myModule() { ... }
或正确导入模块
import myModule from '...';
有关更多信息,请参阅MDN上的export
文档 。