在ES6中定义后导出类

时间:2015-06-18 16:47:58

标签: javascript ecmascript-6

// test.js
class Test

export Test
// index.js
import {Test} from './test'

这会导致Unexpected token出现语法错误。导出预定义类的正确方法是什么?

编辑:要求类定义与导出分开。

4 个答案:

答案 0 :(得分:6)

详细说明

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!";

答案 1 :(得分:4)

正确的方法是使用export {Test}

答案 2 :(得分:0)

您只需要更改test.js:

export class Test

然后

import {Test} from './test'

答案 3 :(得分:0)

你们都可以

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';