在 ES6 中定义后导出类
Export a class after definition in ES6
// test.js
class Test
export Test
// index.js
import {Test} from './test'
这会导致 Unexpected token
的语法错误。导出预定义类的正确方法是什么?
编辑:要求类定义与导出分开。
正确的方法是使用 export {Test}
.
详细说明
export {A, B};
与
// old style
exports.A = A;
exports.B = B;
这需要像这样的import
import {A,B} from "./somefile";
这与
// old style
var A = require("./somefile").A;
var B = require("./somefile").B;
但是,您也可以使用export default
class Test {
constructor() {
console.log("it's works");
}
}
export default Test;
这与
// old style
exports["default"] = Test;
module.exports = exports["default"];
然后像导入一样
import Test from "./test";
new Test();
// "it works!";
这与
// old style
var Test = require("./test");
new Test();
// "it works!";
你们都可以
class MyClass { }
export { MyClass }
或
export default MyClass // no semicolon
然后
import { MyClass as Stuff } from './modulepath';
或(如果您声明导出默认值)
import { default as MyClass } from './modulepath';
或者干脆
import MyClass from './modulepath';
你只需要改变你的测试.js:
export class Test
然后
import {Test} from './test'
相关文章:
- 在ES6中,模块将导致多个网络调用,因为两个模块不能在单个文件中定义
- Es6:能够在设置/更新/删除对象属性时调用自定义方法
- ES6:尽管使用了bind(),但这是未定义的
- 使用es6模块:未捕获ReferenceError:define未定义
- ES6“提取未定义”
- 未定义的Es6级在单元测试中与大口摩卡
- 导入会产生未定义的Karma+ES6+jspm
- 当使用Angular1+ES6时,控制器函数中未定义依赖注入,控制器是一个类
- Angular ES6,THIS,Scope和EL在JQLITE点击事件中全部未定义
- 在扩展事件发射器的 ES6 类定义中设置事件侦听器
- 定义 ES6 React 组件的两种方法
- VideoJS v5 - 在 ES6 中添加自定义组件 - 我做得对吗?
- ES6 类属性定义
- Babel 编译 es6 类,函数未定义
- 在类构造函数 (ES6) 中定义常量
- 静态方法在 ES6 类中未定义,在 reactjs 中有一个装饰器
- 使用在带有gulp和babel的单独文件中定义的ES6函数
- ES6 块范围的变量定义作为条件
- 在es6类中从高阶函数中定义一个方法
- 访问Passport'React(ES6)中的用户需求?API调用将req.user返回为未定义