如何导入一个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");