请稍等 ...
×

采纳答案成功!

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

类型兼容问题

let x = (a: number) => 0;
let y = (b: number, s: string) => 0;
y = x
y(1)

报错 Expected 2 arguments, but got 1.

想问下,在官网中,x是可以赋值给y的,但是在实际调用中,又会抛出少一个参数,那么这个赋值有什么意义呢?

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

插入代码

1回答

ustbhuangyi 2021-02-18 21:14:02

y 指向 x 是运行时的概念,TS 是静态类型检查,所以它会检测参数不匹配报错。
你可以执行 y(1,'a'),这样就不会报错。
如果你问有啥意义,这样的赋值操作没有啥意义,因为 y 和 x 参数类型都不一致

1 回复 有任何疑惑可以回复我~
  • 提问者 Mesry #1
    明白了,就是说在y指向x是得代码跑起来,但是在静态类型检查期间y还是y,y还是需要两个参数对吧
    回复 有任何疑惑可以回复我~ 2021-02-22 10:28:24
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

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

帮助反馈 APP下载

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

公众号

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