2017-05-09 90 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';