我如何导入一个Typescript 1.0函数,就像node.js的require带参数

How can I import a Typescript 1.0 function like a node.js require with arguments?

本文关键字:函数 node 就像 js 参数 require Typescript 何导入 导入 一个      更新时间:2023-09-26

我正在将遗留代码转换为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;

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

你的主。它的代码现在可以要求函数

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