我最近一直在编写TypeScript,用于在浏览器中运行.我发现我想要做的是从Java应用程序中运行相同的代码.我有一个复杂的逻辑,我想编写一次,并在浏览器中的JavaScript环境中以及Java桌面环境中使用.现在我知道我可以在java中托管javascript,但我想知道是否有将TypeScript转换为纯Java代码的方法?
如果这似乎又引入了另一种语言,我们深表歉意。
\n为什么不考虑使用ScalaJS生成 JavaScript和JVM 兼容的 (Java) 例程,从而利用Java 到 Scala 互操作和类似 Java 的语法?
\n基本上,Scala / ScalaJS代码项目可以配置为输出 Javascript和Java 兼容的字节代码库/JAR(后者用于集成回其他 Java/JVM 代码)。
\n如果学习 Scala 语言似乎又浪费时间,您还可以考虑以编程方式将现有 Java 例程转换为 Scala*,以便进一步转换为 ScalaJS/Javascript,所有这些都作为额外的构建步骤:
\n\n最后,您可以(但有一些注意事项)将第 3 方 TypeScript 定义转换为 Scala[JS] 代码 API,以便调用包含的 TypeScript 库强类型 Scala 代码:
\n\n* ScalaJS代码只能依赖/交叉编译其他 Scala 派生的代码/库,但“正常”Scala 可以导入任何 Java 兼容的库。
\n更新: Jetbrains(各种优秀 IDE 的作者,包括 IntelliJ IDEA)的 Kotlin是另一种以 JVM 为中心的简洁语言,也具有 Javascript 交叉编译支持。\xe2\x80\x99s 还有一个一键式 Java 到 Kotlin 转换器工具,适用于 Intellij 和 Eclipse。
\nKotlin 似乎越来越受欢迎,据说比 Scala 更“复杂”,并且也被用于 Android 和 IOS 应用程序开发(RoboVM Studio)。
\n您可以在这里尝试 Kotlin。
\nTypeScript 仍然是一种新语言,并且它的功能添加很快。即使有这样的转译器,您最终也会遇到非常不幸的情况,因为转译器始终落后于 TypeScript 功能。
一种“更安全”的方法是将 TypeScript 转换为 JavaScipt,然后再转换为 Java。这对我来说更有意义,因为 JavaScript 是一种已经达到某种成熟度的标准化语言,但它仍然是一个坏主意。然而,最新步骤甚至没有转译器。
即使有这样的转译器,我也绝对不想这样做,因为你最终会陷入陷阱。转译器绝不是完美的,代码对于人们来说更难理解(示例)和验证。
编辑: Mozilla Rhino项目可以将 JavaScript 翻译为 Java。