如何使用正确的名称将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") }