Tag: 科特林

从kotlin创build新的节点模块对象

我正在尝试在Kotlin上编写一个小的node.js应用程序来testing和使用javascript interop。 从暴露原型“Bar”的外部节点模块“foo”,我试图创build一个“Bar”的新实例。 在Javascript中,我会简单地写一些类似的东西 var foo = require('foo') var bar = new foo.Bar() 在Kotlin中,我定义了一个外部函数'require'并加载了按照预期工作的模块: external fun require(module: String): dynamic … val foo = require("foo") //Somehow create a new Bar 现在我想创build一个Bar的新实例。 到目前为止我已经尝试过: 调用val bar = foo.Bar() 。 这被解释为function,因此不起作用。 定义一个外部类Bar并创build一个新对象val bar = Bar() 我能find的唯一的解决方法是通过本地JavaScript代码实例化对象: val bar = js("new foo.Bar()") 。 这工作,但有一些缺点: 它不是types安全的(这是使用kotlin的美丽的一部分) 它在编译时没有被检查的variablesfoo有一个隐式依赖 这个模块暴露了很多这样的对象,它们有不同的构造函数参数集,这会导致很多本地代码,我想避免 有没有什么办法可以达到这个目的呢,纯粹的kotlin呢?