我试图让NodeJ与Kotlin一起使用HelloWorld示例here。
根据Kotlin JS documentation,重载方法需要@JsName注释。但根据我的经验,即使是单方法也需要它。如果没有此注释,编译器会为方法名称添加后缀,如屏幕截图所示。
这是一个错误吗?或者我错过了什么?
我正在使用NPM提供的Kotlin 1.1.0模块(如果需要,请查看上面的GitHub链接以获取完整的代码库。)
答案 0 :(得分:3)
Kotlin编译器命名所有函数,除了那些不带任何参数的函数。动机是:您可以在以后添加重载函数,这不应该破坏代码的二进制兼容性。至于@JsName
:这取决于你的目标。我不知道它,因此我无法分辨你是否对每种方法都提出了@JsName
注释。如果您正在开发一个旨在从JavaScript中使用的库,是的,您可能需要在要从JavaScript访问的每个函数上放置@JsName
。我们将添加另一个注释,关闭整个类或文件的修改。