我最近一直在编写TypeScript,以便在浏览器中运行。 我发现我想要做的是从Java应用程序中运行相同的代码。我有一个复杂的逻辑,我想编写一次,并在浏览器中的JavaScript环境中以及Java桌面环境中使用。现在我知道我可以在java中托管javascript,但我想知道是否有将TypeScript转换为纯Java代码的方法?
答案 0 :(得分:5)
使用TypeScript编写,为JVM和浏览器编译,尝试https://1c.wizawu.com
答案 1 :(得分:3)
道歉,如果这似乎又引入了另一种语言。
为什么不考虑使用ScalaJS来生成JavaScript AND JVM兼容(Java)例程,从而利用Java-to-Scala interop和类似Java的语法? 强>
基本上,Scala / ScalaJS代码项目可以配置为output both Javascript and Java-compatible byte code libraries/JARs(后者用于集成回其他Java / JVM代码)。
如果学习Scala语言似乎是另一个时间接收器,您还可以考虑programmatically converting your existing Java routines into Scala*,以便进一步转换为ScalaJS / Javascript,所有这些都是额外的构建步骤:
最后,您可以通过一些注意事项将第三方TypeScript定义转换为Scala [JS]代码API,以便调用包含的TypeScript库强类型Scala代码:
* ScalaJS 代码只能依赖/交叉编译其他Scala派生的代码/库,但“普通”Scala可以导入任何与Java兼容的库。
更新: Kotlin,Jetbrains(各种优秀IDE的作者,包括IntelliJ IDEA)是另一种以JVM为中心的简洁语言,也支持Javascript交叉编译。对于Intellij和Eclipse,还有一键式Java-to-Kotlin转换器工具。
Kotlin似乎越来越受到关注,据说比Scala更“复杂”,并且还被用于Android和IOS应用程序开发(RoboVM Studio)。
答案 2 :(得分:0)
TypeScript是一种新的语言,它增加了功能rapidly。即使有这样的转换器,你最终也会陷入非常不幸的境地,因为转换器总是落后于TypeScript功能。
A"更安全"方法是将TypeScript转换为JavaScipt并转换为Java。这对我来说更有意义,因为JavaScript是一种达到某种成熟度的标准化语言,但它仍然是一个坏主意。但是,最新一步有not even个转换器。
即使有这样的转发器,我也绝对不希望这样做,因为你最终陷入困境。运营商绝不是完美的,代码将更难以让人们理解(example)并进行验证。
编辑: Mozilla Rhino项目可以将JavaScript转换为Java。
答案 3 :(得分:0)
这不是您问题的完整答案,但可能很有趣。项目Script4J是一组库,可以使用Java API在TypeScript中进行编码。尽管这是一个新项目,但可能会很有用。
答案 4 :(得分:-1)
我有一个类似的目标,即将尝试http://www.jsweet.org/将java转换为javascript。到目前为止,确实存在一些限制(不支持菱形运算符,匿名内部类等),但是能够编写和维护一个代码库而不是两个代码库的好处太大而不能忽略