Size: a a a

2021 November 20

IP

Iaroslav Postovalov in Kotlin JS
Говорить можно что угодно. Реальный оверхед можно замерить в принципе только на конкретном приложении.
источник

IP

Iaroslav Postovalov in Kotlin JS
kotlinx-benchmark не умеет ничего, кроме JS Legacy и JMH.
источник

AN

Alexander Nozik in Kotlin JS
Это хорошее замечание. Апвоутим https://github.com/Kotlin/kotlinx-benchmark/issues/30, тем более, что там уже PR висит
источник

IP

Iaroslav Postovalov in Kotlin JS
Да, только автор PR вернется только летом этого года.
источник

AN

Alexander Nozik in Kotlin JS
Да тут он периодически. Нашел интернет в армии
источник

АГ

Алексей Гладков... in Kotlin JS
источник

OY

Oleg Yukhnevich in Kotlin JS
я здесь)

но сейчас в лазарете, приболел
времени на всё не хватает
и там больше не меня надо пинговать, а котлин тим)
источник

AN

Alexander Nozik in Kotlin JS
индид. Выздоравливайте
источник
2021 November 22

O

OlegKrikun in Kotlin JS
Так, помогите, я в JS ваще не умею =)))
в котлине имею:
@JsExport
sealed class Count {
   object None : Count()
   object One : Count()
   object Many : Count()
}

в JS делаю:
import type { Count } from '%MODULE%'

В итоге ругается что:
Module %MODULE% has no exported member 'Count'


В целом вопрос как мне правильно работать с Count из JS? =))))
источник

AN

Alexander Nozik in Kotlin JS
Так тут наследование, JS в него вообще не умеет особо. И какой компилятор?
источник

O

OlegKrikun in Kotlin JS
IR
источник

O

OlegKrikun in Kotlin JS
Хорошо, а как мне тогда получить что то типа енама/силд класса для js? или там такое не практикуется?
источник

IG

Ilya Goncharov in Kotlin JS
У вас Count в каком-то пакете?
источник

IG

Ilya Goncharov in Kotlin JS
В общем в Kotlin/JS сейчас идет экспорт вместе с пакетом, то есть если fqn - com.example.Count
То он будет экспортиться в js точно так же
com.example.Count
И таким образом сейчас в js вам нужно делать следующее

import { com } from ‘%MODULE%’

com.example.Count
источник

O

OlegKrikun in Kotlin JS
О, спасибо!
источник

O

OlegKrikun in Kotlin JS
А как бы этот мэс похендлить? Кроме выноса всего добра в корневой пакэдж =)
источник

O

OlegKrikun in Kotlin JS
тайпалиас в корневом пакедже не виден в жс =)
источник

IG

Ilya Goncharov in Kotlin JS
Тайпалиасы не экспортятся вообще

А так, со стороны котлин вынос в рутовый пакет как воркэраунд действительно

Есть со стороны вебпака (если у вас сборка предполагает использование вебпака в Kotlin/JS, то есть вы используете browser() сетап)

Можно добавить в папку webpack.config.d следующие донастройки для вебпака
В файл *.js (например `index.js`)

config.output = config.output || {} // защита от того, что этой настройки может не быть - в тестах например
cofig.output.libraryExport = [“com”, “example”]


Тогда пакет com.example должен стать как бы рутом

Но тогда то, что вы экспортите из других пакетов, станет недоступным
То есть сюда нужно писать какой-то общий корень всех экспортом
источник

O

OlegKrikun in Kotlin JS
Спасибо большое!
источник

IG

Ilya Goncharov in Kotlin JS
Ну и у нас есть ишью под это дело, можно лайкнуть 🙂
По сути это задача про flat export, чтобы все, что на экспорт шло не в пакет, а сразу на топ левел
https://youtrack.jetbrains.com/issue/KT-37710
источник