2017-05-09 86 views
3

我正在尝试将es5的代码迁移到es6,如果有人可以帮助我,我在这两方面都很新,我会非常感激。将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不能得到解决。 任何想法或建议吗?

谢谢!

+0

尝试从 “./lib”'导入库;' – dfsq

+0

@dfsq谢谢! – Kelyane

回答

2

这应该只是

import Lib from "./lib"; 

否则,如果您使用* as符号,你可以访问default出口与Lib.default,但这是不必要的。

1

我不明白你的代码的以下部分:

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

这似乎是无效的。

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

lib.js

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

main.js

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