统一处理axios的返回promise

统一处理axios的返回promis 1.都是返回Promise对象2.返回数据类型为ResponseData3.只有data不同采用泛型

  1. //定义
  2. //默认T = {}可以让不需要返回值的接口不写泛型
  3. export type PromiseRes<T = {}> = Promise<ResponseData<T>>
  4. export interface ResponseData<T = null> {
  5. code?: number;
  6. message?: string;
  7. data?: T;
  8. errno?: number;
  9. }
  10. export interface LoginData {
  11. token: string;
  12. tokenHead: string;
  13. }
  14. //使用
  15. //登录接口
  16. export const adminLogin = (): PromiseRes<LoginData> => request.post('/admin/login')
  17. //xx接口 不需要返回值
  18. export const xx = (): PromiseRes => request.post('/xx')

{}[]

{ }[ ] :代表数组嵌套对象的类型数据

interface Person {
  name: string;
}
const data: {}[] = []
const data2: Person[] = [{ name: 'dan' }]

不确定key的类型

interface NewMenusObj {
  [key: string]: MenusObjItf
}

const newMenus: NewMenusObj = {};
const mid = '1' //1则报错
newMenus[mid] = {  };

继承

interface queryParams {
  pageNum: number;
  pageSize: number;
}

export interface AdminListsParams extends queryParams {
  keyword: string;
}