以其他名称导入 ES6 类
Importing ES6 Class under a different name
使用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
请从class DefaultInit
之前删除default
,或者将import * as B
替换为import DefaultInit
。
相关文章:
- 可以合并或嵌套ES6导入
- 如何将es6导入转换为AMD需要
- 如何执行“变量”ES6导入
- React ES6 导入无状态组件
- 是否可以将ES6导入直接添加到对象上
- JestReact测试es6导入/导出不需要的mock
- 节点要求()与ES6导入:为什么这个例子不起作用
- ES6 -- 导入 es5 文件
- ES6 导入/导出语法困难
- 使用 ES6 导入 JSNLog 的正确语法是什么?
- ES6:导入多个文件
- ES6 导入语法与 Angular 1.5 UI 路由器
- ReactJS ES6导入类问题
- es6-导入不带别名的所有命名模块
- 这些ES6导入方法之间的区别是什么
- ES6 导入的代码是否严格
- ES6导入模块作为对象
- 通过ES6导入导入远程文件
- 我如何告诉Babel在使用Rollup Babel插件时忽略es6导入?
- 如何使用es6导入图像