请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

感觉老师对于 extend 成立条件的描述有误

笔记原文

某个变量如果能断言成 objecet 类型 [ 变量 as object ],那么这个变量的类型就符合 T extends object

问题

个人感觉这个说法不严谨,之前章节提到断言的第一种情况就是 父类和子类 可以相互断言,子类可以断言成父类,父类也可以断言成子类,例如:

function foo(arg: any) {
	const obj = arg as object; // 这里我们吧 any 类型的变量断言成了 object
}

依照笔记中的说法,难道 any 符合 T extends object 吗?所以应该是: 如果 T 是 object 的子集,那么 T 才符合 T extends object

正在回答

1回答

路过同学了解下--老师新课程全栈当当书城优惠倒计时2天,截至2022年7月19号平台将课程恢复原价,有意向同学趁早出手【此条非问题解答,见谅!】

这个说法非常严谨,描述完全正确,同学请记住:   any是任何类型的父类类型,也是任何类型的子类类型,所以any 即是object的父类,也是object的子类,可以互相断言 。测试下面的例子,就明白了。

type TypeInvoke<T, U> = T extends U ? T : number

type result = TypeInvoke<any, object> //any

type result2 = TypeInvoke<object, any> //object



1 回复 有任何疑惑可以回复我~
  • 提问者 坡村小码哥 #1
    谢谢老师回复
    回复 有任何疑惑可以回复我~ 2022-04-06 10:41:49
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号