如何将 Kotlin 编译成 TypeScript?

13

我在Kotlin项目中使用了JavaScript构建。如何生成完整的TypeScript代码而不是JavaScript代码?

我使用Maven;但如果你有Gradle解决方案,我也很感兴趣。


也许你可以看一下这个:https://github.com/ntrrgc/ts-generator。不过你为什么要这样做呢?TypeScript 本身也会将代码转译成 JavaScript... - Patric
我需要整个代码都用ts编写,而不仅仅是模型。 - sab
从一开始就考虑全栈 TypeScript。仅是个建议,可能对您/您的团队/您的用例不太实际。 - basarat
你到底想要实现什么?从你的问题中并不清楚。你想要有机会同时使用typescript和kotlin吗?这是可行的。还是你想要将kotlin编译成typescript?这就是另外一回事了。 - shabunc
如果您正在寻找一种简单的方法来尝试ts-generator,您可以尝试使用ktsgenerator Gradle插件。 - Ynv
我会在我的项目中尝试,谢谢!同时,您能否对此帖子添加真实的回复,以便如果它有效,我可以更改所选答案? - sab
2个回答

17

更新: TypeScript 定义生成的预览版本在 Kotlin 1.4 中的 IR 后端已经可用

根据Kotlin 文档:

Kotlin/JS IR 编译器能够从您的 Kotlin 代码生成 TypeScript 定义。这些定义可以被 JavaScript 工具和 IDE 在处理混合应用程序时使用,以提供自动完成、支持静态分析器,并使在 JavaScript 和 TypeScript 项目中包含 Kotlin 代码更加容易。在生成可执行文件(binaries.executable())的项目中,使用 @JsExport 标注的顶级声明将会生成一个 .d.ts 文件,其中包含出口的 Kotlin 声明的 TypeScript 定义。在 Kotlin 1.4 中,这些声明可以在构建目录下的 build/js/packages/<package_name>/kotlin 中找到,与相应的未压缩的 JavaScript 代码一起


Kotlin/JS 编译器无法生成 TypeScript 代码。没有计划生成完整的 TypeScript 代码,也没有第三方解决方案据我所知。

但是,我们计划在 JavaScript 代码旁边生成 TypeScript 定义文件:KT-16604


  1. 在语法上做出一些小的改变后,JavaScript 就可以成为有效的 TypeScript。
  2. Kotlin 可以生成 JavaScript。
- user1742529
JavaScript 包含的信息比 TypeScript 少。您应该能够直接从 Kotlin 转换为 TypeScript,但是首先经过 JavaScript 会删除 TypeScript 信息,然后再从 JavaScript 代码中推导类型信息。 - Arlen Beiler

1

你能告诉我们 Gradle 插件的名称吗? - xetra11
尽管较新版本的 Kotlin 已经有了自己的 TypeScript 生成器,但该插件已不再维护。 - user2228895
哦。我该如何使用这些新版本的本地生成呢?我使用IntelliJ,但找不到任何可以为我完成此操作的功能,而谷歌只会将我带到这些问题。 - xetra11
我从谷歌上得到了几个答案! [https://kotlinlang.org/docs/js-overview.html#kotlin-js-frameworks] [https://dev59.com/zFgQ5IYBdhLWcg3wlk7P] - user2228895

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