问题描述

vue3 + ts 项目中,使用axios库调接口时报了如下错误:

1
Property 'code' does not exist on type 'AxiosResponse<any, any>'.ts(2339)

或者遇到 Property 'xxx' does not exist on type 'AxiosResponse<any, any>'.ts(2339) 类型问题我们该如何解决呢?

解决方法

新建一个axios.d.ts文件,内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
// 定义接口返回数据类型,这里根据后端返回去定义

interface resPage {
page: number
pageSize: number
total: number
hasNextPage: boolean
pageTotal: number
}

interface itfRes<T = {}[] | {} | []> {
code: number
message: string | undefined
data: T
reason?: string
page?: resPage
}

import * as axios from 'axios'

declare module 'axios' {
interface AxiosResponse extends itfRes
}

加上之后的效果: