每个方法都需要@JsName注解吗?

我在这里试图让NodeJs和Kotlin一起为HelloWorld的例子工作。

根据Kotlin JS文档 , 重载的方法需要@JsName注解。 但以我的经验来看,即使是单一的方法也是如此。 如果没有这个注解,编译器会为方法名称添加一个后缀,如截图所示。 在这里输入图像描述

这是一个错误? 还是我错过了什么?

我使用NPM提供的Kotlin 1.1.0模块(如果需要,请检查上面的GitHub链接以获得完整的代码库)。

Kotlin编译器会对所有函数进行命名,除了那些不带任何参数的函数。 动机是:您可以稍后添加重载函数,这不应该破坏代码的二进制兼容性。 至于@JsName :这取决于你的目标。 我不知道它,因此我不能告诉你是否把每个方法的@JsName注释。 如果您正在开发一个旨在从JavaScript使用的库,那么您可能需要将@JsName在您想要通过JavaScript访问的每个函数上。 我们将添加另一个关于在整个课程或文件上关闭的注释。

Interesting Posts