请稍等 ...
×

采纳答案成功!

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

类型兼容问题

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下载
官方微信