将TypeScript转换为JavaScript

javascript typescript

36783 观看

9回复

2543 作者的声誉

我想知道如何以跨平台的方式将TypeScript转换为JavaScript。我知道有关typescript的节点包管理器的可用性,但是还有其他可以在服务器端使用的替代方案吗?

作者: Alex Objelean 的来源 发布者: 2012 年 10 月 1 日

回应 (9)


29

621 作者的声誉

TypeScript编译器是用TypeScript构建的,因此可以作为JS文件(tsc.js)使用,可以使用任何ES3兼容的VM或JS实现来运行。

也就是说,编译器的当前文件I / O基础结构仅支持Node和Windows Scripting Host文件API。如果您想推荐支持其他环境,请随时联系我们的GitHub网站 (以前的CodePlex

作者: Joe Pamer 发布者: 01.10.2012 06:36

5

101319 作者的声誉

具体来说,在服务器上(假设您的服务器有Node.js可用),您只需运行:

node path/to/tsc.js yourFile1.ts yourFile2.ts [etc]

您可以在没有任何输入文件名的情况下运行该命令,以查看tsc.js的命令行帮助。

作者: Ryan Cavanaugh 发布者: 01.10.2012 10:39

2

3400 作者的声誉

要编译ts - > js:node可用于所有常见平台,所以当你已经拥有tsc.js时,我不明白为什么你想要一个tsc.java。安装节点没什么大不了的。实际上,它比Java更容易。

获得proj.js文件后,可以将其复制到您希望使用的部署平台。

从我的角度来看,JavaScript - 或者更准确地说ECMAScript是Java的替代品。所以我很高兴我不必与JVM等争论使用该工具。但是,如果您更喜欢Java,那为什么还要打扰JS呢?

作者: CyberFonic 发布者: 02.10.2012 12:12

1

348 作者的声誉

SublimeText2技巧 你可以直接从SublimeText2(你需要节点)将typescript转换为javascript:

使用此内容创建Typescript.sublime-build文件/Sublime Text 2/Packages/User

{
"cmd": ["tsc", "$file"],
"selector" : "source.ts",
"path": "/usr/local/bin:$PATH"
}

那么,现在,您可以使用ctrl + B或cmd + B来转换代码

作者: k33g_org 发布者: 02.10.2012 06:46

3

355 作者的声誉

如果它是您需要定位的Java,那么您可以使用Rhino引擎运行tsc.js作为构建过程的一部分。

作者: Christopher Cook 发布者: 02.10.2012 11:34

1

147 作者的声誉

我一直在玩这个,可以用javascript编译TypeScript,代码如下:

<script src=typescript.js></script>

<script>

var scriptText = ""
        + "/// <reference path=\"test.ts\"/>" + "\r\n"
        + "class Car {"
        + "     constructor (private name: string) { } "
        + "     getName() { "
        + "         var juice = new Juice();"
        + "         return name; "
        + "     } "
        + "} "
        + "var car = new Car('Subaru Impreza');"
        + "console.log(car.getName());";





var TextWriter = function () { };

TextWriter.prototype = {
collected: '',

Write: function (sc) {
    this.collected += sc;
},
WriteLine: function(sc) {
    this.collected += sc + '\n';
},
toString: function() {
    return this.collected;
}
};

var output = new TextWriter();
var tsc = new TypeScript.TypeScriptCompiler(output);

var script = tsc.addUnit(scriptText, "");

tsc.emit();

console.log(output.toString());

</script>

但这并不完全理想。我正在尝试运行一些东西,所以我可以在C#中将TypeScript转换为JS(使用Javascript .NET),但是我在ts.addUnit调用中得到了堆栈溢出。

作者: eoleary 发布者: 02.10.2012 05:48

16

27485 作者的声誉

决定

简短版本:如果可以,请使用Node。现在它变得不可避免了。

也许这不是你想要的答案,但正如大家所提到的,编译器是一个JS文件,因此,你的选项是执行JS文件的选项。

在Windows中,有两个明显的,Node和Windows Script Host。

你已经了解了node,另一个选项是所有Windows版本附带的组件(我认为),你可以这样做:

cscript path/to/tsc.js source-file.ts

您可以只看到所有编译器选项:

cscript path/to/tsc.js

在Linux上我假设您应该能够使用(除了节点):

  • V8独立外壳,替换nodecscript搭配v8-shell
  • ExecJS https://github.com/sstephenson/execjs
  • 在所选平台上可用的任何其他JS跑步者(另一个答案提到Rhino例如)

更新:另一个答案表明编译器API只与节点和Windows脚本宿主(cscript工具)兼容,因此,如果正确,那么在Linux上你需要Node来编译TypeScript。

如果您正在寻找类似的东西apt get tsc(或者Linux / Mac包管理器之类的东西),我认为没有。

我记得在某处读过I / O针对Node和Windows Script Host进行了优化,因此,如果您遇到选项问题,如果寻求平台独立性,您最终可能会使用Node。

更新:此处的另一个答案证实了兼容性相同。

作者: Meligy 发布者: 03.10.2012 03:23

3

13367 作者的声誉

我有一个项目,它将Typescript编译为Java中的Javascript:

https://github.com/martypitt/typescript4j

正如在其他答案中所讨论的,这使用了Rhino,因此没有依赖npmnode

这是一个例子:

// Instantiate the compiler:
TypescriptCompiler compiler = new TypescriptCompiler();

// Compile a string:
String output = compiler.compile("class Greeter { greeting: string; }");

// Or, compile and output to a file:
compiler.compile(new File("example.ts"), new File('output.js'));

我在另一个项目中使用它- 'Bakehouse'在Spring环境中对打字稿资源进行即时编译

作者: Marty Pitt 发布者: 17.01.2013 07:35

1

6640 作者的声誉

这对我有用:

首先,安装typescript 节点模块 >> npm install -g typescript。这给出了命令行实用程序tsc

下一个, tsc gulpfile.ts gulp-config.ts typings/tsd.d.ts

  • 这将transpilegulpfile.tsgulp-config.ts文件gulpfile.jsgulp-config.js。我们提供该typings/tsd.d.ts文件作为正确转录的参考。
  • typescript 节点模块涵盖了许多选项>> tsc -h指定输出目录或文件,等等

希望这可以帮助。

作者: Akash 发布者: 23.05.2016 04:47
32x32