我安装了Node.js工具(https://nodejstools.codeplex.com/),我有一个项目可以在本地正常运行的文件上运行。对于Web应用程序,我想使用TypeScript(稍后我可能会将我的node.js代码以某种方式迁移到TS)。只需在我的其他项目中调用一个函数即可。在VS2012的TypeScript项目中使用JavaScript项目
这是我用来调用我的函数(compiler.compile)
var compiler = require("../src/compiler"),
fs = require("fs");
fs.readFile(process.argv[2], 'utf8', function(err, data) {
if (err) {
console.log("FILE READ ERROR: ", err);
process.exit();
}
var output = compiler.compile(data);
});
的可执行文件,这是我的导出:
exports.compile = function(code) {
//code
};
我怎么会去使用我的编译( )在VS2012 TS项目中的功能?
我想:
<script src ="compiler.js"></script>
<script src="app.js"></script>
和:
declare function compile(code:String);
但是,这似乎并没有工作。
编辑:我也试着这样做:
compiler.js
exports.compile = function() {};
compiler.d.ts
declare module "compiler.js" {
class Compiler {
compile();
}
}
app.ts
///<reference path="./compiler.d.ts"/>
import compiler = module("compiler.js");
但是我在app.ts中的“import compiler = module”下得到了一个squigly行,“模块不能被别名为非模块类型。 。无法解析模块参考“模块””
所有3个文件是在同一文件夹和项目进行测试
EDIT2:我设法得到它认识到在compiler.d.ts模块,即使通过使用'require'而不是'module'移动到我的JS项目中,但它似乎并没有链接到我的编译器.js文件中的函数。实际上,我没有看到任何将JS函数链接到d.ts声明在任何地方,这是相当混乱。
这并没有为我工作:
这将可用于如下。它建立并运行,但没有任何反应。我离开VS最初的项目代码(在页面上写东西)和你的app.ts,但它永远不会到达写作部分。 – Mosho
我也无法调试。我把所有的JS文件放在TS项目中,虽然我可以使用VS的nodejs工具调试JS,但我在TS项目的JS文件中添加的任何断点都会被忽略。这应该可能会出现在它自己的问题中...... – Mosho