lewik
12/11/2017, 7:56 AMgildor
12/11/2017, 8:07 AMlewik
12/11/2017, 8:07 AMjs("{}")
gildor
12/11/2017, 8:10 AMlewik
12/11/2017, 8:14 AMgildor
12/11/2017, 8:16 AMinline fun jsObj(init: dynamic.() -> Unit): dynamic {
val json = js("{}")
init(json)
return json
}
val json = jsObj {
foo = "baz"
}
lewik
12/11/2017, 8:17 AMgildor
12/11/2017, 8:22 AMjson(*myMap.map { (k, v) -> k to v }.toTypedArray())
fun <T> Map<String, T>.toJson() = json(*map { (k, v) -> k to v }.toTypedArray())
fun <T> Map<String, T>.toJson(): Json {
val res: dynamic = js("({})")
for ((name, value) in this) {
res[name] = value
}
return res
}
типизированного Json нетусмотря что иметь в виду. Типизированный “json” это же просто создание объекта класса или интерфейса в Kotlin
lewik
12/11/2017, 9:27 AM{}
Но когда работаешь в котлине - зачастую хочется работать с {}
как с Map (не все методы конечно требуются)gildor
12/11/2017, 9:27 AM{}
?lewik
12/11/2017, 9:27 AM{}
gildor
12/11/2017, 9:28 AMlewik
12/11/2017, 9:31 AMgildor
12/11/2017, 9:34 AMexternal class SomeConfig(val foo: String, val bar: Int)
lewik
12/11/2017, 9:34 AMgildor
12/11/2017, 9:43 AMlewik
12/11/2017, 9:43 AMgildor
12/11/2017, 9:43 AMlewik
12/11/2017, 9:43 AMgildor
12/11/2017, 9:45 AMписать с помощью вот этих типизированных json и массивовне понимаю почему они “типизированные“, ведь они как раз таки динамические
lewik
12/11/2017, 9:46 AMgildor
12/11/2017, 9:46 AMlewik
12/11/2017, 9:47 AM{}
. А на стороне котлина для безопасности и просто удобства - хочется ограничить типы.gildor
12/11/2017, 9:49 AMlewik
12/11/2017, 9:50 AMgildor
12/11/2017, 9:50 AMlewik
12/11/2017, 9:52 AMgildor
12/11/2017, 10:01 AMlewik
12/11/2017, 10:07 AMgildor
12/11/2017, 10:07 AMsemoro
12/11/2017, 11:47 AMlewik
12/11/2017, 11:48 AM[]
Это 'Array<T>' который в js выглядит как '[]'
Даже toTypedArray()
естьcaffeine
12/11/2017, 1:29 PM