如何导入一个Typescript 1.0函数,如node.js require和arguments?

我正在将遗留代码转换为Typescript,而许多其他模块依赖于签名

var x = require("./someModule.js")(args); 

在Node.js中,可以这样做:

moduleHello.js

 module.exports = function (message) { console.log("I'm a module and I say " + message); } 

main.js

 require("./moduleHello.js")("Hello!"); // Should print "I'm a module and I say Hello!" 

我试着在Typescript中使用export关键字,但看起来你不能干脆地写下来,如下所示:

moduleHello.ts

 export function sayHello (message) { console.log("I'm a module and I say " + message); } 

main.ts

 // Does not work, error TS1005: ';' expected. import someVar = require("moduleHello")("I wish this worked"); // Also I'd probably have to call someVar.sayHello() instead, which I'm trying to avoid. 

我可以在Typescript中编写单行的“require with arguments”来维护与我的传统模块的兼容性吗? 或者我必须退回到Javascript?

提前致谢。

您可以使用export =语法将一个函数分配给导出。

所以:

moduleHello.ts

 function sayHello (message) { console.log("I'm a module and I say " + message); } export = sayHello; 

这将生成js的module.exports = sayHello;

您的main.ts代码现在将能够要求该function

 import sayHello = require("moduleHello"); sayHello("This will work");