假设我们发送如下请求:
import axios from 'axios';
const response = await axios.get('/some/url');
我们要访问响应头,可以在 response.headers
属性上访问相应的属性。然而,当我们使用 TypeScript 声明类型时,我们必须显式地声明响应头类型。
import axios, { AxiosResponse } from 'axios';
interface ApiResponse {
data: any;
headers: {
[key: string]: string;
};
}
const response: AxiosResponse = await axios.get('/some/url');
在这个例子中,我们将 AxiosResponse
声明为一个具有类型参数的泛型,其中我们指定了响应体和响应头的类型。
现在我们可以访问响应头的值并获得 TypeScript 编译器的类型检查。
console.log(response.headers['content-type']);
如果响应头的属性名不确定,我们可以使用预定义的常量访问响应头。
import axios from 'axios';
import { AxiosResponse } from 'axios';
interface ApiResponse {
data: any;
headers: {
[key: string]: string;
};
}
const response: AxiosResponse = await axios.get('/some/url');
console.log(response.headers[AxiosResponse.HeaderNames.ContentType]);
这里我们使用了 AxiosResponse.HeaderNames.ContentType
常量来访问 Content-Type
响应头的值。这是 axios
库中预定义的常量之一,可以确保我们正确地访问响应头的属性。