¿Cómo se usan las classs anónimas de Kotlin como arguments para las funciones nativas de JavaScript?

Estoy configurando la capa de interoperabilidad para esta class ThreeJS y el constructor de la class toma un object que se usa para establecer las properties.

//PointCloudMaterial.js THREE.PointCloudMaterial = function ( parameters ) { THREE.Material.call( this ); this.color = new THREE.Color( 0xffffff ); this.map = null; this.size = 1; this.sizeAttenuation = true; this.vertexColors = THREE.NoColors; this.fog = true; this.setValues( parameters ); }; 

A continuación se muestra lo que me gustaría poder hacer en Kotlin: ¿es posible usar objects anómalos de alguna manera? Originalmente estaba pensando en crear un object equivalente a los posibles perímetros para pasar, problema con eso es que anularía los valores actuales, que no es algo que quiero.

 //Interop Layer native("THREE.PointCloudMaterial") public class PointCloudMaterial(parameters: object) { } //This doesn't compile "Type Expected" //Example usage var sizeObject = object { var size: Double = size } PointCloudMaterial(sizeObject); 

La solución tipo segura puede verse como:

 native val <T> undefined: T = noImpl class PointCloudMaterialParameters ( val color: Int = undefined, val opacity: Double = undefined, //val map: THREE.Texture = undefined, val size: Double = undefined, //val blending: THREE.NormalBlending = undefined, val depthTest: Boolean = undefined, val depthWrite: Boolean = undefined, val vertexColors: Boolean = undefined, val fog: Boolean = undefined ) fun main(args : Array<String>) { println(PointCloudMaterialParameters(size = 2.0)) } native("THREE.PointCloudMaterial") public class PointCloudMaterial(parameters: PointCloudMaterialParameters) //Example usage PointCloudMaterial(PointCloudMaterialParameters(size = 2.0)) 

Otra solución que es más corta, pero no segura de tipo es:

 native("THREE.PointCloudMaterial") public class PointCloudMaterial(parameters: Any) //Example usage PointCloudMaterial(object { val size = 2.0 }) 

PD: Intentaremos simplificar este caso en el futuro.

  • "Si" vs. "tomar si" en Kotlin?
  • Acceso directo para "Convertir código Java (no file) a kotline"
  • ¿Cómo administro los resources de testing de la unidad en Kotlin, como iniciar / detener una connection de database o un server de búsqueda elástica incorporado?
  • Cómo get el valor emitido desde el primer observable
  • Kotlin: For-loop debe tener un método de iterador, ¿es esto un error?
  • Complemento de Dokka no encontrado en el estudio de Android 3
  • Desarrollo de biblioteca. Usando datos de fonts externas
  • Cómo traducir una interfaz java jna a kotlin
  • ambas aplicaciones: showAsAction = "ifRoom" y android: showAsAction = "ifRoom" no funcionan como se esperaba
  • Mutidex y Kotlin
  • Poniendo un lambda genérico en un map