kotlin - 是否可以使用插值字符串模板调用 kotlin 的 js 函数?

标签 kotlin kotlin-js kotlin-js-interop

现在,IntellJ 显示一条红色波浪线:参数必须是字符串常量

private fun fromEnv(name: String) {
    return js("process.env[${name}]") as Unit
}

我已经搜索过,但没有发现任何类似的问题。


由@alexey-romanov解决

就这么简单:

private fun fromEnv(name: String) {
    return js("process.env[${name}]") as Unit
}

编译为:

function fromEnv(name) {
  var tmp$;
  return typeof (tmp$ = process.env[name]) === 'string' ? tmp$ : throwCCE();
}

最佳答案

不,不是。但是您可以在 js 的代码参数中使用 name:

private fun fromEnv(name: String) {
     js("process.env[name]")
}

此示例与 Inline Javascript 中变量 o 的使用几乎相同。文档部分:

fun jsTypeOf(o: Any): String {
    return js("typeof o")
}

关于kotlin - 是否可以使用插值字符串模板调用 kotlin 的 js 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59457907/

相关文章:

javascript - 如何从 JavaScript 执行 Kotlin WebAssembly 函数?

gradle - 无法解析 'kotlin'中的 '/home/marcin/Projects/EduKotlinAcademy/web/build/node_modules_imported/kotlinx-html-js'

javascript - 如何将 Javascript 导出的类转换为 Kotlin/JS?

android - 错误 : Cannot figure out how to save this field into database.: Kotlin 房间

android - 如何使用 Kotlin 修复此错误,找不到 Fragment 构造函数?

kotlin-js - 如何将 Kotlin 文件编译为 JavaScript?

javascript - 在 Kotlin JS 中实例化期望 "new"关键字的 Javascript 类

javascript - 在使用 JS 编译的 Kotlin 编程时,尝试在 Canvas 元素上移动圆圈时遇到问题

用于 fragment 中状态流的 Android 通用函数

kotlin - Kotlin 中 ArrayList<String>() 和 mutableListOf<String>() 之间的区别