如何给后端返回的数据定义一个类型


import axios, {AxiosResponse, AxiosRequestConfig} from 'axios'
import {message} from 'antd'

axios.create({
  baseURL: '',
})

axios.interceptors.request.use((config: AxiosRequestConfig) => {
  return config;
}, (error) => {
  return Promise.reject(error);
});

axios.interceptors.response.use((response: AxiosResponse) => {
  return response.data
}, (error) => {
  return Promise.reject(error);
});

export default axios

我有封装的axios,假如后端返回类型也就是response返回的response.data如下

{
    code:1000,
    message:'成功',
    data:xxxx
}

该如何全局定义一个interface 让我可以像如下使用

fetch.get(`xxxx`).then((res:ReponseData)=>{
    // do something...
})

看过说是可以全局这样定义

declare namespace Ajax {

   // 请求接口数据
  export interface AjaxResponse {
    code: number,
    data: any,
    message: string | null;
 }
}

// 如下使用会报错
fetch.get(`xxxx`).then((res:Ajax.AjaxResponse)=>{
    // do something...
})

如果我想如上使用的话,该如何定义这样的interface来用

阅读 6.1k
2 个回答
interface Response<T> {
    code: number,
    data?: T,
    message: string | null,
}

多用泛型吧

新手上路,请多包涵

范型即可解决,在后端适用typescript作为开发语言时,可直接套用interface传入范型

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进