请稍等 ...
×

采纳答案成功!

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

类型推导疑问

图片描述
老师,我想问下,为什么这里的泛型T会被推导为"name"|"age"组成的联合类型,而不是推导为string。是因为extends string后,发生了类型缩减吗?

正在回答 回答被采纳积分+3

1回答

Nolan 2021-06-05 20:21:28

'name'|'age' 本身就是一个类型,extends string只是默认值,你指定了'name'|'age'后, 默认类型string就会被覆盖了

0 回复 有任何疑惑可以回复我~
  • 提问者 进阶的前端小白 #1
    extends string不是泛型约束嘛,是不是和字面量也有关系,因为传参是一个字面量,不是变量
    回复 有任何疑惑可以回复我~ 2021-06-05 20:30:09
  • Nolan 回复 提问者 进阶的前端小白 #2
    没错, extends string 是约束泛型,但是 'name'|'age' 是 string 的子集,所以没啥问题。你如果传 object 类型就会报错了
    回复 有任何疑惑可以回复我~ 2021-06-05 20:31:54
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信