1.0.x でサポートされていない Kotlin の JavaScript バックエンドをいじり、現在、おもちゃのプロジェクトを 1.1.x に移行しようとしています。これは、PouchDB とやり取りする単一ページの Web アプリの骨組みです。PouchDB にデータを追加するには、特定のプロパティ_id
とを持つ JavaScript オブジェクトが必要_rev
です。また、PouchDB によって予約されているため、他のプロパティを最初から持つ必要はありません。_
このようなクラスを作成すると、インスタンスを PouchDB に送信できます。
class PouchDoc(
var _id: String
) {
var _rev: String? = null
}
ただし、プロパティを仮想にするために何かを行うと、インターフェイスをオーバーライドするか、クラスを開いてそれらをオーバーライドするサブクラスを作成すると、_id
フィールド名が次のよう_id_mmz446$_0
にマングルされ、PouchDB はオブジェクトを拒否します。プロパティに適用@JsName("_id")
すると、生成された getter と setter にのみ影響します。バッキング フィールドの名前はまだ変更されたままです。
また、名前が で始まらない仮想プロパティの場合_
、PouchDB はオブジェクトを受け入れますが、適切な名前のプロパティではなく、マングルされた名前のバッキング フィールドのみを格納します。
今のところ、仮想ではないものにすることで回避できると思います。しかし、Kotlin で PouchDoc と非 PouchDoc クラスの間でインターフェイスを共有することを考えていましたが、それができないようです。
これを機能させる方法、または Kotlin 言語の変更が必要ですか?