我想知道如何以跨平台的方式将 TypeScript 转换为 JavaScript。我知道可以使用 node package manager for typescript,但是否有其他可用于服务器端的替代方案?
我想知道如何以跨平台的方式将 TypeScript 转换为 JavaScript。我知道可以使用 node package manager for typescript,但是否有其他可用于服务器端的替代方案?
npm install -g typescript
会将tsc
加入到Node/NPM支持的任何平台的路径中,包括Windows、OS X和Linux。这真的不难,朋友们...... - joshuapoehls简短版:如果可以的话,请使用Node。现在它已经变得无法避免了。
也许这不是你想要的答案,但正如大家所提到的,编译器是一个JS文件,因此你的选项就是执行JS文件的选项。
在Windows中,有两个明显的选项,Node和Windows Script Host。
你已经了解了Node,另一个选项是与所有Windows版本一起提供的组件(我认为),你可以像这样执行:
cscript path/to/tsc.js source-file.ts
你可以通过以下方式查看所有编译器选项:
cscript path/to/tsc.js
在Linux上,我想你应该能够使用以下选项(除了node):
node
或cscript
替换为v8-shell
更新: 另一个答案指出编译器API仅与Node和Windows Script Host(cscript工具)兼容,因此在Linux上,您需要使用Node来编译TypeScript。
如果您在寻找类似于apt get tsc
(或者其他Linux/Mac软件包管理器),我认为是不存在的。
我记得在某个地方读到过,I/O针对的是Node和Windows Script Host进行了优化,因此如果遇到选项问题,寻求平台无关性,您可能最终会使用Node。
更新: 这里的另一个答案证实了兼容性相同的情况。
你可以在命令行中使用 ts-node:
npm install ts-node
然后像这样调用命令:
tsc file.ts --outFile file.js
apt install node-typescript
安装tsc。 - Jacob Philpott-g
选项,或者尝试在安装目录中使用node_modules/.bin/tsc file.ts --outFile file.js
。 - Utopiah具体而言,在服务器上(假设你的服务器有Node.js可用),你只需运行:
node path/to/tsc.js yourFile1.ts yourFile2.ts [etc]
您可以在不提供任何输入文件名的情况下运行该命令,以查看 tsc.js 的命令行帮助文档。
npm install tsc; npx tsc main.ts
将会输出 main.js
。该命令用于安装 TypeScript 编译器,并将 main.ts
文件编译成 main.js
文件。 - Ray Fosshttps://github.com/martypitt/typescript4j
正如其他答案中所讨论的那样,这个程序使用了Rhino,因此不依赖于npm
或node
。
以下是一个示例:
// 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'));
SublimeText2 技巧 您可以直接从SublimeText2中将typescript转译为javascript(需要node):
在/Sublime Text 2/Packages/User
中创建一个名为Typescript.sublime-build
的文件,并使用以下内容:
{
"cmd": ["tsc", "$file"],
"selector" : "source.ts",
"path": "/usr/local/bin:$PATH"
}
现在,您可以使用Ctrl+B或Cmd+B转译您的代码。
我一直在尝试这个,可以使用以下代码将TypeScript编译为JavaScript:
<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调用上出现了堆栈溢出。
typescript
node module >> npm install -g typescript
。这将提供一个命令行实用程序tsc
。tsc gulpfile.ts gulp-config.ts typings/tsd.d.ts
gulpfile.ts
和gulp-config.ts
文件transpile
到gulpfile.js
和gulp-config.js
。我们提供typings/tsd.d.ts
文件作为正确转译的参考。typescript
node module涵盖了许多选项>>tsc -h
以指定输出目录或文件等。