类型兼容问题

来源:11-1 withCredentials 需求分析&代码实现& demo 编写

Mesry

2021-02-17

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

报错 Expected 2 arguments, but got 1.

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

写回答

1回答

ustbhuangyi

2021-02-18

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

1
1
Mesry
明白了,就是说在y指向x是得代码跑起来,但是在静态类型检查期间y还是y,y还是需要两个参数对吧
2021-02-22
共1条回复

下一代前端开发语言 TypeScript从零重构axios

课程从零开始重构功能完整的JS库,是学习造轮子的不二之选!

2629 学习 · 877 问题

查看课程