6
为什么这个合法的TypeScript?TypeScript:为什么一个数字可分配给Object类型的引用?
var x: number = 5
var y: Object = x
当然,一个数字不是Object
。有人可能会怀疑x被隐式强制(自动盒装)的一个对象,但没有:
if (!(y instanceof Object)) {
console.log(typeof y)
}
打印
number
对于记录:在打字稿
$ tsc --version
Version 1.8.10
好的,这就是我期待的解释(注意到我也可以将bool分配给我定义的空白接口,称为Bool,它与Object同构)。我了解结构性和名义性,但没有预料它适用于非参考类型。我想这只是对于Object真正具有空接口的程度而言的(鉴于对于一个对象我可以做的事情可能是我无法对数字或原始字符串做的事情)。 – Roly
我很高兴解释,所以我接受了答案。原来我被咬了,不是因为数字<对象(这似乎是好的,模我上面的警告),但因为函数类型的子类型似乎borked。这里有一个新问题:http://stackoverflow.com/questions/39569016。 – Roly
我想这里的数字