gpt4 book ai didi

javascript - 在 Angular/客户端项目中使用转换为 JavaScript 的 Kotlin 代码

转载 作者:行者123 更新时间:2023-12-01 01:09:58 25 4
gpt4 key购买 nike

我们有一个 Kotlin 项目,其中一些类旨在与客户端共享,因此我们配置了 kotlin-maven-plugin 以将某些 Kotlin 类吐出为 JavaScript :

    <configuration>
<outputFile>${project.basedir}/angular/src/assets/kotlin_classes.js</outputFile>
<moduleKind>commonjs</moduleKind>
</configuration>

Kotlin 类如下所示:

class SomeKotlinClass {
fun someMethod(name: String): String {
return "Happy Birthday, " + name;
}
}

我们遇到的问题是,无论我们使用什么moduleKind(我们尝试过plainumdamd),我们的方法名称在 JavaScript 文件中似乎有一个奇怪/乱码的后缀:

  SomeKotlinClass.prototype.someMethod_6q3v0v$ = function (name) {
return 'Happy Birthday, ' + name
};

这意味着我们在 Angular/TypeScript 中的调用不能是 someMethod(),它们必须是 someMethod_6q3v0v$(),这是行不通的对于我们来说。

我的插件配置或者我在项目中包含此 JavaScript 文件的方式是否有问题?我们已经完成了 99%,但最后一个(奇怪的)障碍阻碍了我们。

最佳答案

Javascript 中编译方法的名称可以使用 @JSName(...) 注解设置。

在这种情况下:

class SomeKotlinClass {
@JsName("someMethod")
fun someMethod(name: String): String {
return "Happy Birthday, " + name;
}
}

然后编译为:

SomeKotlinClass.prototype.someMethod = function (name) {
return 'Happy Birthday, ' + name;
};

关于javascript - 在 Angular/客户端项目中使用转换为 JavaScript 的 Kotlin 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55251062/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com