Javascript Kotlin JS没有';t加入“;新";关键字在需要的地方

Javascript Kotlin JS没有';t加入“;新";关键字在需要的地方,javascript,kotlin,google-visualization,kotlin-js,Javascript,Kotlin,Google Visualization,Kotlin Js,我正在使用谷歌图表和Kotlin JS创建交互式信息图形。这是来自的代码片段 var data=new google.visualization.DataTable(); var chart=new google.visualization.PieChart(document.getElementById('chart_div'); 这里使用“new”关键字。我试图用Kotlin重写这段代码 val data = google.visualization.DataTable(); <..

我正在使用谷歌图表和Kotlin JS创建交互式信息图形。这是来自的代码片段

var data=new google.visualization.DataTable();
var chart=new google.visualization.PieChart(document.getElementById('chart_div');
这里使用“new”关键字。我试图用Kotlin重写这段代码

val data = google.visualization.DataTable();
<..>
val chart = google.visualization.PieChart(document.getElementById('chart_div'));
val data=google.visualization.DataTable();
val chart=google.visualization.PieChart(document.getElementById('chart_div');
但是出现了一个错误,上面的行中缺少“new”关键字。所以Kotlin到JS编译器并没有在它们应该在的地方添加关键字。下面是编译后的JavaScript代码

var data=google.visualization.DataTable();
var chart=google.visualization.PieChart(document.getElementById('chart_div');
在不使用js()函数的情况下,是否有避免错误的正确方法


谢谢。

没有添加
新的
关键字的原因是
谷歌
变量没有添加
外部
关键字。通过这一步,Kotlin生成了正确的代码

external object google {
    object visualization {
        class DataTable
    }
}

您还可以共享从这些kotlin行编译的javascript代码吗?@Ilya好的,完成了。如果我阅读正确,看起来您需要使用
js
函数来创建所有本机javascript对象。您是否原则上避免使用
js
,或者您是否看到这种类型的调用在其他地方没有
js
函数的情况下有效?我猜这是因为JavaScript函数可以在使用和不使用
new
的情况下进行调用,这意味着非常不同的事情,KT不知道您的意思。@ГПППППааё是的,但这是一个问题,不是任意表达式(
google.visualization.DataTable
);据Kotlin所知,也许DataTable是一个普通函数。也许您需要相应的
外部类
标题,但即使如此,也不清楚它是否能与内置的
google.visualization
名称空间配合使用。