我正在使用 Kotlin 多平台构建一个库,它应该被 native JVM 和 Node 应用程序使用。我正在努力为 Node 版本提供惯用的 API,因为 Kotlin exposes the package structure to JavaScript .
我想在 com.company.myclientlib.common
包内的公共(public) sourceSet 中定义我的实体:
// sourceSet: common
package com.company.myclientlib.common
data class Product(
val id: String,
val name: String,
val displayName: String
// ...
)
在 Node 应用程序中创建新的 Product
如下所示:
// Node application code
const lib = require("lib")
const product = new lib.com.company.myclientlib.common.Product("id", "name", ...)
我尝试将 @JsName("Product")
放在 Product
类中。虽然名称可以影响 @JsName
,包仍将以相同的方式公开。
有没有办法不在 JavaScript 中公开 Product
的包,而无需在库代码的 JavaScript sourceSet 中重新实现类型?
注意:为 JVM 目标公开包就可以了。
最佳答案
我相信您正在寻找JsQualifier
关于kotlin - 如何在多平台 Kotlin 项目中隐藏 JavaScript 目标的包结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59374620/