我正在尝试将Kotlin代码编译为Javascript。在我的代码中,我需要将字符串编码为URI。我的2个变种都是失败编译:
class PlaceholderJS(prefix: String, placeholder: String?): Placeholder(prefix, placeholder) {
override fun encode(str: String): String {
return encodeURIComponent(str)
}
在此代码编译器中找不到函数encodeURIComponent(str),所有浏览器都支持https://www.w3schools.com/jsref/jsref_encodeuricomponent.asp。
替代:
class PlaceholderJS(prefix: String, placeholder: String?): Placeholder(prefix, placeholder) {
override fun encode(str: String): String {
return URLEncoder.encode(str, Charsets.UTF_8.name())
}
找不到Java类URLEncoder(在Java中导入文件)。这在为JVM编译时有效,但不适用于JS。
我还有Kotlin模块标有:
compileKotlin2Js.kotlinOptions.moduleKind = "umd"
答案 0 :(得分:3)
我发现在Kotlin中声明Javascript函数的最新方法是:
external fun encodeURIComponent(str: String): String
一旦将它添加到Kotlin类,所有内容都可以编译而没有问题。