xcatliu/typescript-tutorial

类型断言这一页“类型断言 vs 类型声明“里“但是 Cat 并不兼容 Animal”是否错误?

Web-Kevin opened this issue · 2 comments

image
该页”类型断言的限制“里相同的代码已经说了两者相互兼容,为何下面就不兼容了?

animal as cat ,cat as animal不代表两者互相兼容。只是animal兼容cat,所以animal可以断言为cat,cat可以断言为animal。而声明只能是cat声明为animal。
即动物不一定是猫,猫一定是动物。猫一定是动物这句话将猫转为动物,就是let tom: animal= cat;
而断言则多了一种情况,即我通过它的一系列行为(代码逻辑)断言这个动物一定是猫。

只有一样的东西才互相兼容