我安裝了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