我正在使用Kotlin多平台构建一个库,本机JVM和Node应用程序应使用该库。我正在努力为Node版本提供惯用的API,因为Kotlin exposes the package structure to JavaScript。
我想在com.company.myclientlib.common
包内的公共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 sourceSet中的类型的情况下,在JavaScript中不公开Product
包?
注意:公开用于JVM目标的软件包就可以了。