如何使用正确的名称将Kotlin函数导出到Javascript

我试图将Kotlin函数导出到Javascript。 问题是,需要参数的函数在Kotlin2JS操作之后被重命名,这里是一个例子:

Kotlin来源:

fun withParam(args: String) { println("JavaScript generated through Kotlin") } fun withoutParams() { println("Without params") } 

在Kotlin2JS之后,试图在Node REPL中要求:

 > const kotlinBundle = require('./build/index.js'); undefined > kotlinBundle { 'withParam_61zpoe$': [Function: withParam], withoutParams: [Function: withoutParams] } > 

正如你所看到的,带有_61zpoe$后缀的参数的函数。 是否有可能摆脱那部分?

我使用kotlin2js插件和kotlin-stdlib-js:1.1.1库,我的kotlinOptions是:

 compileKotlin2Js.kotlinOptions { moduleKind = "commonjs" outputFile = "build/index.js" } 

谢谢

您可以使用@JsName注释为编译的javascript中的函数(或其他符号)提供确切的名称。 即

 @JsName("withParam") fun withParam(args: String) { println("JavaScript generated through Kotlin") } 
Interesting Posts