【发布时间】:2016-03-27 17:57:38
【问题描述】:
我最近开始研究 Kotlin 并设法创建了我的第一个 JVM 应用程序。拥有一种可以同时编译为 Java 和 JS 的语言真是太酷了。所以,现在我开始玩 Kotlin2js 并尝试了解 Javascript 的互操作性,以及使用 jQuery 等 JS 框架的可能性。
我发现了一些博客文章和示例: http://blog.jetbrains.com/kotlin/2013/10/writing-kotlin-in-the-browser/ http://blog.jetbrains.com/kotlin/2014/12/javascript-interop/ https://github.com/JetBrains/kotlin/blob/master/libraries/tools/kotlin-gradle-plugin/src/test/resources/testProject/kotlin2JsProject/mainProject/src/main/kotlin/example/main.kt
是否有 Kotlin JS 库的文档? http://kotlinlang.org/api/latest/jvm/stdlib/index.html尚未提及
我首先编译了一个简单的示例应用程序,它使用 import kotlin.browser.* 和 gradle 作为构建系统(最后和 some help here 一起工作,再次感谢!)。比我将项目导入 IDEA 突然它不再编译了,我不得不将导入更改为 import js.dom.html.*。那么,我猜它使用了不同版本的库? (除了 kotlin2js 之外,IDEA 还在我的 build.gradle 中添加了 apply plugin: 'kotlin',我想这不起作用。)
IDEA 将 kotlin-jslib.jar 复制到 lib,在其 Manifest 中显示为“Implementation-Version: 0.7.270”。使用 gradle 编译时,我使用了 kotlin 1.0.1-1,我很确定我在创建项目时也在 IDEA 中选择了这个版本。
那么,了解 Kotlin2js 和 Kotlin-js-lib 的最佳信息来源是什么?
尤其是 Javascript 的互操作性,如何使用 jQuery 之类的框架(kotlin-js-lib 中似乎有 jQuery 支持),以及如何使用其他尚不支持 Kotlin 的框架。我知道 Kotlin 有 dynamic 关键字,http://blog.jetbrains.com/kotlin/2014/12/javascript-interop/ 提到 noImpl ,当我尝试使用它时会导致编译错误。
也许目前最好的方法是查看 Kotlin 源代码?
嗯,这是一个涉及多个方面的相当长且非结构化的问题,但这是我目前学习 Kotlin 的状态:-) 也许其他人也遇到同样的问题。
【问题讨论】:
-
简短的回答是您应该至少等到 Kotlin 1.1。 Kotlin JS 后端的工作在 1.0 之前暂停,现在正在恢复。如果您尝试在当前状态下使用 JS 支持,您可能会设法让某些东西运行起来,但您会遇到很多问题。一旦 JS 支持更加完善,将会有更好的文档、IDE 支持以及您可能需要的一切。
-
好吧,我想我会等待并暂时坚持使用 JVM 后端。谢谢!
-
Kotlin 1.1 宣布全面支持 JavaScript blog.jetbrains.com/kotlin/2017/01/kotlin-1-1-beta-is-here 的编译
-
来了! kotlinlang.org/docs/reference/js-overview.html。还有一个由 Kotlin 团队开发的用于与 React 集成的库,即将开源。
-
请注意,对于 Stack Overflow,请求外部资源是题外话。请参阅 off-topic:要求我们推荐或查找工具、库或最喜欢的非现场资源的问题对于 Stack Overflow 来说是无关紧要的,因为它们往往会吸引固执己见的答案和垃圾邮件。
标签: javascript jquery kotlin