xcatliu / typescript-tutorial

TypeScript 入门教程
https://ts.xcatliu.com
10.44k stars 1.33k forks source link

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

Open Web-Kevin opened 3 years ago

Web-Kevin commented 3 years ago

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

liweiook commented 2 years ago

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

liweiook commented 2 years ago

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