关于spread函数的类型

来源:11-13 静态方法扩展 需求分析+ 代码编写 + demo编写

慕粉6137024

2021-03-24

根据spread<T, R>(callback: (…args: T[]) => R): (arr: T[]) => R
T我可以确定是AxiosResponse类型,这个R是void类型吗?
|
|
|
还有就是:

axios.spread = function spread(callback) {
  return function wrap(arr) {
    return callback.apply(null, arr)
  }
}

这个函数其实效果下面的一样

axios.spread = function spread(callback) {
  return callback
}

这样return只是为了满足 then 函数的参数结构?
那resA,resB是什么时候传进去的?是arr解构出来的吗?

这样的话,哪个console.log(resA.data)是
spread参数里面console出来的,还是return callback之后console出来的?

写回答

1回答

ustbhuangyi

2021-03-24

你这俩函数不一样吧,spread 主要为了实现函数参数的解构,当然如果你用 es6 的解构赋值语法那么你完全不需要 spread

0
1
慕粉6137024
T是AxiosResponse类型,这个R是void类型 | resA,resB是arr解构出来 | | ↑那我上面的理解是对的吗?
2021-03-24
共1条回复

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

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

2631 学习 · 877 问题

查看课程