是否可能将JavaScript自动转换成TypeScript?

5

我用Coffeescript写了一个游戏,但我更想用Typescript编写。解决这个问题的粗暴方法是手动转换代码。但我想知道是否有一种方法可以自动将Coffeescript或由Coffeescript生成的Javascript转换为Typescript。真是美好的愿望。


2
你可以尝试使用 https://www.npmjs.com/package/coffee-script-to-typescript! - Jared Pochtar
2个回答

7
JavaScript代码已经是TypeScript代码。尽管它可能存在类型错误,但编译器仍会输出一个文件(当它说“错误”时,实际上是“警告”,除非错误发生在解析期间,这对于实际运行的JS不应该是问题)。
在将惯用的JavaScript类/模块结构转换为TypeScript类或模块方面,目前还没有任何工具可用。TFS Team编写了一个内部定制工具来处理他们的代码库,但这只有在他们的JS一开始就遵循非常严格的规则的情况下才是可能的。

4
这是最好的答案。 - celwell
1
+1 - 将你的 JavaScript 粘贴到 TypeScript 文件中并开始调整它! - Fenton

2
这听起来不是一个好主意。尽管它们都生成JavaScript,但CoffeeScript和TypeScript非常不同。然而,由于TypeScript是JavaScript的超集,转译后的CoffeeScript也是有效的TypeScript。根据维基百科(From Wikipedia):

TypeScript是JavaScript的超集。默认情况下,编译器的目标为ECMA Script 3(ES3),但也支持ES5作为选项。TypeScript应用程序可以使用现有的JavaScript脚本。编译后的TypeScript脚本可以从JavaScript中使用。

既然你似乎对你选择的“本周流行的编译到JS语言”不太投入,为什么不写成JavaScript呢?只是作为学术演习?


说实话,我更喜欢Coffeescript而不是JS,因为它更加简洁。一开始我本来想使用Typescript的,但我认为我的IDE不支持它。我觉得类型检查带来的生产力提升会被使用新编辑器所带来的生产力损失抵消掉。结果发现我的IDE竟然支持Typescript,现在我正在考虑转换。 - Daniel Kaplan
1
就我个人而言,我不会让IDE支持成为决定因素。在CoffeeScript更加简洁的地方,TypeScript似乎是完全相反的(静态类型、冗长的元注释等)。 - Daff
1
只是为了给多年前的观点增加新的背景,“一时的流行”这个说法对TypeScript来说有点过于苛刻了,因为现在TypeScript已经成为AngularJS 2.0的母语言。 - RJB

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接