我正在尝试将代码从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 :(得分: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';