将es5迁移到es6导出默认值

时间:2017-05-09 09:49:42

标签: javascript ecmascript-6 es5-shim

我正在尝试将代码从es5迁移到es6,我在两者中都很新,如果有人可以帮助我,我会非常感激。

es5版本:

lib.js

module.exports = {
    foo1: function () { 
        this.foo2() {
           ... 
        }
    },
    foo2: function () { 
        ...
    }
}

main.js

const Lib = require("./lib");
Lib.foo1( { ... });

es6版本 - 我正在尝试:

lib.ts

export default { 
    foo1() {
        this.foo2(() => {
            ... 
        });                 
    },
    foo2(){ ... }
}

main.ts

import * as Lib from "./lib";
Lib.foo1({ ... })

问题在于我的main.ts foo1无法解决。 有什么想法或建议吗?

感谢!

2 个答案:

答案 0 :(得分:2)

应该只是

import Lib from "./lib";

否则,如果您使用* as表示法,则可以使用default访问Lib.default导出,但这是不必要的。

答案 1 :(得分:1)

我不理解您的代码的以下部分:

foo1: function () { 
    this.foo2() {
       ... 
    }
}

这似乎无效。

无论如何,不​​要介绍你自己的伪模块结构。这不是必需的。 lib.js已经是一个模块。

<强> lib.js

export function foo1() {
    foo2();
}
export function foo2() { ... }

<强> main.js

import {foo, foo2} from './lib';