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

时间:2017-05-31 05:52:07

标签: javascript node.js kotlin actions-on-google kotlin-js-interop

我试图让NodeJ与Kotlin一起使用HelloWorld示例here

根据Kotlin JS documentation重载方法需要@JsName注释。但根据我的经验,即使是方法也需要它。如果没有此注释,编译器会为方法名称添加后缀,如屏幕截图所示。enter image description here

这是一个错误吗?或者我错过了什么?

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

1 个答案:

答案 0 :(得分:3)

Kotlin编译器命名所有函数,除了那些不带任何参数的函数。动机是:您可以在以后添加重载函数,这不应该破坏代码的二进制兼容性。至于@JsName:这取决于你的目标。我不知道它,因此我无法分辨你是否对每种方法都提出了@JsName注释。如果您正在开发一个旨在从JavaScript中使用的库,是的,您可能需要在要从JavaScript访问的每个函数上放置@JsName。我们将添加另一个注释,关闭整个类或文件的修改。

相关问题