使用来自节点的TypeScript编译器

用咖啡脚本来做这个很容易。

var coffee = require('coffee-script'); coffee.compile("a = 1"); //=> '(function() {\n var a;\n\na = 1;\n\n}).call(this);\n' 

有没有办法做到这一点打字稿?

编辑:也张贴在codeplex上

似乎现在有一个更简单的解决scheme,你可以这样做:

 let ts = require('typescript'); let source = ts.transpileModule('class Test {}', {}).outputText; 

这导致:

 "use strict"; var Test = (function () { function Test() { } return Test; }()); 

由于TypeScript的NPM模块不会导出任何公共接口,所以当前唯一的方法是执行tsc进程。

 var exec = require('child_process').exec; var child = exec('tsc main.ts', function(error, stdout, stderr) { console.log('stdout: ' + stdout); console.log('stderr: ' + stderr); if (error !== null) { console.log('exec error: ' + error); } }); 

已经打开一个问题来请求TypeScript模块的公共接口。

更好的要求可以帮助你实现这一目标。

它可以让你需要()打字稿文件 – 不需要预编译 – 以及一堆其他文件格式(coffeescript,clojurescript,yaml,xml等)

 require('better-require')(); var myModule = require('./mymodule.ts'); 

披露:我写了更好的要求。

通过niutech检查这个github项目 ,它可以在浏览器中将TypeScript代码转换为JS代码,但是我想可以很容易地将其修改为在node.js中工作。

我在调查支持TypeScript的可能性的同时,在我的现场的, 萤火虫启发的代码编辑器中find了它。

不直接回答这个问题,但由于谷歌search“从节点直接运行TypeScript”带来了这个StackOverflow页面,我想我应该补充说,你可以做到这一点与TS节点: https : //github.com/TypeStrong / TS-节点