JavaScript-объект, который действует как карта, может использоваться в Kotlin как внешний интерфейс с расширением get
и set
операторные функции:
external interface ResourceDictionary
inline operator fun ResourceDictionary.get(name: String): LoaderResult? =
this.asDynamic()[name]
inline operator fun ResourceDictionary.set(name: String, result: LoaderResult?) {
this.asDynamic()[name] = result
}
Объект JavaScript, который действует как класс, будет использоваться в Kotlin как внешний класс
external open class LoaderResult {
var url: String
var data: ByteArray
var error: Error?
}
Вы также можете конвертировать определения TypeScript, используя ts2kt tool:
$ npm install -g ts2kt
- Найти index.d.ts файл для PixiJS
$ ts2kt index.d.ts
Тогда вы сможете найти external interface ResourceDictionary
и external open class Resource
в pixi.PIXI.loaders.kt
: