使用gulp, browserify & babelify,导出/导入类可以正常工作,直到我尝试以不同的名称导入相同的类:

// Acme/DefaultInit.js
export default class DefaultInit {
    constructor() {
        console.log('hello');
    }
}

// App/Init.js
import * as B from "../Acme/DefaultInit";

class Init extends B.DefaultInit {
    constructor() {
        super();
        console.log('how are you?');
    }
}


因此,当我运行gulp构建的脚本时,错误是:

TypeError: Super expression must either be null or a function, not undefined


来自babel生成的代码

if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); }


我在那里做错了什么?请注意,没有jslint错误

最佳答案

您默认将DefaultInit导出,因此实际上可以从B.default而不是B.DefaultInit使用它。

如果您想执行B.DefaultInit,请将defaultclass DefaultInit之前删除,或者将import * as B替换为import DefaultInit

09-25 17:21