Я создаю интерактивную инфографику с помощью Google Charts и Kotlin JS. Это фрагмент с страницы быстрого запуска.
var data = new google.visualization.DataTable();
<..>
var chart = new google.visualization.PieChart(document.getElementById('chart_div'));
Здесь используется «новое» ключевое слово. Я попытался переписать этот код с помощью Kotlin.
val data = google.visualization.DataTable();
<..>
val chart = google.visualization.PieChart(document.getElementById('chart_div'));
Но произошла ошибка, говорящая о том, что ключевое слово «новое» отсутствует в строках выше. Таким образом, компилятор Kotlin для JS не добавил ключевое слово там, где оно должно быть. Вот скомпилированный код JavaScript.
var data = google.visualization.DataTable();
<..>
var chart = google.visualization.PieChart(document.getElementById('chart_div'));
Есть ли правильный способ избежать ошибки без использования функции js()?
Спасибо.
js
для создания всех собственных объектов Javascript. Вы принципиально избегаетеjs
или видели, что этот тип вызова работает без функцииjs
в другом месте? - person Jeff Bowman   schedule 10.11.2019val request = XMLHttpRequest(...)
компилируется вvar request = new XMLHttpRequest(...)
- person FoRRestDp   schedule 10.11.2019new
и без него, что означает очень разные вещи, и KT не знает, что вы имеете в виду. - person Aluan Haddad   schedule 10.11.2019google.visualization.DataTable
); насколько известно Котлину, возможно, DataTable — это простая функция. Возможно, вам нужны соответствующиеexternal class
заголовки как это делает XMLHttpRequest, но даже тогда неясно, будет ли он работать со встроенным пространством именgoogle.visualization
. - person Jeff Bowman   schedule 10.11.2019