如何使用Typescript / node.js从一个模块中直接使用function?

我有这个Javascript代码运行在node.js下。 我在多个模块中声明函数,并使用扩展实用程序,以便在其他模块中可用:

// File: util.js: var Util = function () { this.doTask1 = function(name) { return 9; }; } module.exports = new Util(); // File: base.js: var util = require('../../Utils/util.js'); var helpers = require('../../Utils/helpers.js'); var AdminBase = function () { var self = this; this.doTask2 = function(name) { return 99; }; } module.exports = helpers.extend({}, util, new AdminBase()); // File: page.js: var base = require('../Common/base.js'); var Page = function () { base.doTask1() base.doTask2() // File: helpers.js var extend = function (target) { var sources = [].slice.call(arguments, 1); sources.forEach(function (source) { for (var prop in source) { target[prop] = source[prop]; } }); return target; }; module.exports.extend = extend; 

我现在想用Typescript做同样的事情,我需要一些帮助。 到目前为止,我明白我需要编写像这样的模块的导入:

 // File: util.ts module Util { export function doTask1(name) { return 9; }; } export = Util; // File: base.ts import util = require('../../Utils/util'); import helpers = require('../../Utils/helpers.js'); var AdminBase = function () { var self = this; this.doTask2 = function(name) { return 99; }; } module.exports = helpers.extend({}, util, new AdminBase()); // File: page.js: import base = require('../Common/base.js'); var Page = function () { base.doTask1() base.doTask2() 

我对如何编写代码感到困惑,所以我可以像我在使用第一种方法时那样访问doTask1()和doTask2()函数。

有人可以给我build议,让我知道我可以如何处理function的出口,所以我可以像我以前一样的方式访问这些function。

请注意,我不想要的是编码:

 util.doTask1() base.doTask2() 

因为这开始变得混乱。

如果你想要做的

 base.doTask1() base.doTask2() 

你需要从基地ie出口doTask1 / doTask2

 // File: base.ts import util = require('../../Utils/util'); import helpers = require('../../Utils/helpers.js'); export var doTask1 = util.doTask1; export var doTask2 = function(name) { return 99; };