小编okh*_*obb的帖子

如果没有第一个 DeserializationStrategy 参数,Kotlin 的 Json.decodeFromString 如何工作?

我对 Kotlin 很陌生,很好奇是什么魔法让这段代码能够工作:

来自https://github.com/Kotlin/kotlinx.serialization/blob/e2e764a132c8eebd31208120774baf9a71ec23c7/formats/json/commonTest/src/kotlinx/serialization/SerializerForNullableTypeTest.kt

@Serializable
data class Box(val s: StringHolder?)

val deserialized = Json.decodeFromString<Box>(string)
Run Code Online (Sandbox Code Playgroud)

当函数定义似乎需要在编码的 JSON 字符串之前有一个初始参数时。

https://github.com/Kotlin/kotlinx.serialization/blob/e2e764a132c8eebd31208120774baf9a71ec23c7/formats/json/commonMain/src/kotlinx/serialization/json/Json.kt

public final override fun <T> decodeFromString(deserializer: DeserializationStrategy<T>, string: String): T {
Run Code Online (Sandbox Code Playgroud)

json kotlin

12
推荐指数
2
解决办法
1万
查看次数

如何在angular2 ng中防止DOM替换在angularfire2中的异步?

我使用angularfire2在angular2应用程序中有一个异步的消息列表.

<message *ngFor="let message of messages | async" [message]="message"></message>
Run Code Online (Sandbox Code Playgroud)

当列表更新时,ngFor中的所有元素似乎都会重新渲染.是否可以重新渲染列表中的新项目?

firebase firebase-realtime-database angularfire2 angular

7
推荐指数
1
解决办法
2249
查看次数

如何在MacOSX上的Safari中的Angular2指令HostListener中使用TouchEvent Typescript类型

使用

TouchEvent
Run Code Online (Sandbox Code Playgroud)

在指令中输入会导致Safari桌面出现以下错误

ReferenceError: Can't find variable: TouchEvent
Run Code Online (Sandbox Code Playgroud)

Typescript源代码是

@HostListener('touchstart', ['$event'])
onTouchstart(event: TouchEvent) {
  // ... does something with event.
}
Run Code Online (Sandbox Code Playgroud)

生成的错误代码是

    __decorate([
        core_1.HostListener('touchstart', ['$event']), 
        __metadata('design:type', Function), 
        __metadata('design:paramtypes', [TouchEvent]), 
        __metadata('design:returntype', void 0)
    ], MyTouchDirective.prototype, "onTouchstart", null);
Run Code Online (Sandbox Code Playgroud)

将类型更改为

any
Run Code Online (Sandbox Code Playgroud)

修复,但是应该可以使用这种类型吗?我一般认为类型永远不会产生javascript.我在同一程序中的Typescript类中有其他对TouchEvent的引用,这些引用不会导致问题.

javascript typescript angular2-directives angular

7
推荐指数
0
解决办法
811
查看次数