#### Describe the bug
When configuring the request method through the config object and using the axios instance method, we cannot define the response type returned by the request.

#### To Reproduce
In version `0.22` I used the following code:
```typescript
import axios, { AxiosRequestConfig, AxiosResponse } from 'axios';

const config: AxiosRequestConfig = {
  method: 'get',
  url: 'https://api.github.com/users/jelleschutter/repos?per_page=1'
}

type RepositoryModel = {
  full_name: string;
  description:  string;
}

axios(config).then((res: AxiosResponse<RepositoryModel[]>) => {
  console.log(res.data);
});

```
Which leads to the following error in `0.23`:
```
TS2345: Argument of type '(res: AxiosResponse<RepositoryModel[]>) => void' is not assignable to parameter of type '(value: AxiosResponse<unknown, any>) => void | PromiseLike<void>'.
  Types of parameters 'res' and 'value' are incompatible.
    Type 'AxiosResponse<unknown, any>' is not assignable to type 'AxiosResponse<Repository[], any>'.
      Type 'unknown' is not assignable to type 'Repository[]'.
    14 |
  > 15 |     axios(config).then((res: AxiosResponse<RepositoryModel[]>) => {
       |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    16 |       console.log(res.data);
    17 |     });
```

#### Expected behavior

This issue was resolved in `0.24` however the type can still not be explicitly set like in this example:

```typescript
import axios, { AxiosRequestConfig, AxiosResponse } from 'axios';

const config: AxiosRequestConfig = {
  method: 'get',
  url: 'https://api.github.com/users/jelleschutter/repos?per_page=1'
}

type RepositoryModel = {
  full_name: string;
  description:  string;
}

axios<RepositoryModel[]>(config).then(res => {
  console.log(res.data);
});

```

#### Environment
 - Axios Version:  0.23.0
 - Node.js Version: 14.15.4
 - OS: Windows 10

#### Additional context/Screenshots
\-
index.d.ts
mSerializerOptions {
  visitor?: FormDataVisitor;
  dots?: boolean;
  metaTokens?: boolean;
  indexes?: boolean;
}
export interface AxiosRequestConfig<D = any> {
  url?: string;
  method?: Method | string;
  baseURL?: string;
  transformRequest?: AxiosRequestTransformer | AxiosRequestTransformer[];
  transformResponse?: AxiosResponseTransformer | AxiosResponseTransformer[];
  headers?: AxiosRequestHeaders;
  params?: any;
  paramsSerializer?: (params: any) => string;
  data?: D;
  timeout?: number;
  timeoutErrorMessage?: string;
  withCredentials?: boolean;
  adapter?: AxiosAdapter;
  auth?: AxiosBasicCredentials;
  responseType?: ResponseType;
  responseEncoding?: responseEncoding | string;
  xsrfCookieName?: string;
  xsrfHeaderName?: string;
  onUploadProgress?: (progressEvent: any) => void;
  onDownloadProgress?: (progressEvent: any) => void;
  maxContentLength?: number;
  validateStatus?: ((status: number) => boolean) | null;
  maxBodyLength?: number;
  maxRedirects?: number;
  beforeRedirect?: (options: Record<string, any>, responseDetails: {headers: Record<string, string>}) => void;
  socketPath?: string | null;
  httpAgent?: any;
  httpsAgent?: any;
  proxy?: AxiosProxyConfig | false;
  cancelToken?: CancelToken;
  decompress?: boolean;
  transitional?: TransitionalOptions;
  signal?: GenericAbortSignal;
  insecureHTTPParser?: boolean;
  env?: {
    FormData?: new (...args: any[]) => object;
  };
  formSerializer?: FormSerializerOptions;
}
export interface HeadersDefaults {
  common: AxiosRequestHeaders;
  delete: AxiosRequestHeaders;
  get: AxiosRequestHeaders;
  head: AxiosRequestHeaders;
  post: AxiosRequestHeaders;
  put: AxiosRequestHeaders;
  patch: AxiosRequestHeaders;
  options?: AxiosRequestHeaders;
  purge?: AxiosRequestHeaders;
  link?: AxiosRequestHeaders;
  unlink?: AxiosRequestHeaders;
}
export interface AxiosDefaults<D = any> extends Omit<AxiosRequestConfig<D>, 'headers'> {
  headers: HeadersDefaults;
}
export interface CreateAxiosDefaults<D 