3

我试图让 NodeJs 与 Kotlin 一起工作,以获取 HelloWorld示例

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

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

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

4

1 回答 1

3

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

于 2017-05-31T06:25:43.967 回答