![]() |
1
1
只是为了让事情清楚,这不仅仅是关于超额的财产检查。当我们将一个对象文字直接分配给一个位置时,多余的属性检查就会起作用。在您的情况下,当间接分配一个对象时,所有更令人惊讶的行为都会发生,这通常在过量的属性检查下是允许的。
令人惊讶的是,至少对我来说,另一个检查(弱类型检查)并不能捕获这个错误。在弱类型检查下(如所述 here )如果一个类型只有可选属性,并且我们试图分配一个与之没有共同属性的类型,那么我们会得到一个错误:
我认为这是弱类型检查中的一个漏洞(我犹豫是否说bug不确定是否是设计的)。弱的类型是 PR ):
然而,在实施弱型交叉口检查时,所有类型的交叉口都必须是弱型交叉口才能成为弱型交叉口。来自编译器代码(添加了注释):
自从
|
![]() |
Michael Runzler · 动态类型化方法中的奇数型推理 7 年前 |
![]() |
K.Os · Kotlin和RxJava类型推断失败 7 年前 |
![]() |
Crazycolorz5 · (^)上的类型推断问题 7 年前 |
![]() |
Josh Stone · Scala类型推断错误 7 年前 |
![]() |
LazyHatIQ · 类型脚本类型推断、扩展语法和多类型返回 7 年前 |