interface AxiosInstance {
  <T = any>(value: T): Promise<T>
}

Promise的泛型T代表promise变成成功态之后resolve的值,resolve(value)

先看看泛型接口来定义普通函数

interface CreateArrayFunc {
  <T>(length: number, value: T): Array<T>
}

let createArray: CreateArrayFunc;
createArray = function <T>(length: number, value: T): Array<T> {
  let result: T[] = [];
  for (let i = 0; i < length; i++) {
    result[i] = value
  }
  return result
}

createArray(3, 'x')  // ['x', 'x', 'x']

同理

interface AxiosInstance {
  <T = any>(value: T): Promise<T>
}

let instance: AxiosInstance;
instance = function <T>(value: T): Promise<T> {
  return new Promise((resolve) => {
    resolve(value)
  })
}
instance(100)
Logo

基于 Vue 的企业级 UI 组件库和中后台系统解决方案,为数万开发者服务。

更多推荐