PHondogo
07/29/2025, 2:41 PMArtem Kobzar
07/29/2025, 2:48 PMwasmJsMain to webMain and it could be compiled to both wasmJs and JS targets (the only limination, that for declarations under kotlin.js package you need manually to add imports)PHondogo
07/29/2025, 3:08 PMimport kotlinx.browser.window
import org.w3c.dom.url.URLSearchParams
URLSearchParams(window.location.search) // Argument type mismatch: actual type is 'String', but 'JsAny?' was expected.
wasmJs sourceSet have also org.jetbrains.kotlinx:kotlinx-browser dependency
js target compiles successfullyPHondogo
07/29/2025, 3:15 PMURLSearchParams(window.location.search.toJsString())Artem Kobzar
07/29/2025, 3:41 PMturansky
07/29/2025, 4:20 PMPHondogo
07/29/2025, 4:55 PMturansky
07/29/2025, 4:57 PMcause it just externals for browser apiIt's what kotlin-browser is ๐ With 100% of stable API support.
PHondogo
07/29/2025, 5:01 PMturansky
07/29/2025, 5:02 PMPHondogo
07/29/2025, 5:11 PMturansky
07/29/2025, 5:27 PM// non-strict
external A(
p: Any // String | Double | Boolean
)
// strict
external A(
p: String
) {
constructor(p: Double)
constructor(p: Boolean)
}
Let's deprecate constructor with Boolean parameter ๐
// non-strict
// No breaking change
external A(
p: Any // String | Double
)
// strict
external A(
p: String
) {
constructor(p: Double)
// BREAKING CHANGE
// constructor(p: Boolean)
}turansky
07/29/2025, 5:28 PMPHondogo
07/29/2025, 6:19 PMturansky
07/29/2025, 6:36 PMkotlin-browser is already available. ๐
You can use it with Kotlin 2.2.0PHondogo
07/29/2025, 7:34 PMturansky
07/29/2025, 9:00 PM