<!-- Click "Preview" for a more readable version --

Please read and follow the instructions before submitting an issue:

- Read all our documentation, especially the [README](https://github.com/axios/axios/blob/master/README.md). It may contain information that helps you solve your issue.
- Ensure your issue isn't already [reported](https://github.com/axios/axios/issues?utf8=%E2%9C%93&q=is%3Aissue).
- If you aren't sure that the issue is caused by Axios or you just need help, please use [Stack Overflow](https://stackoverflow.com/questions/tagged/axios) or [our chat](https://gitter.im/mzabriskie/axios).
- If you're reporting a bug, ensure it isn't already fixed in the latest Axios version.
- Don't remove any title of the issue template, or it will be treated as invalid by the bot.

⚠️👆 Feel free to these instructions before submitting the issue 👆⚠️
-->

#### Describe the bug
When specifying an expected `response.data` type to the post method it also sets that expected type to the request body. Also, when not specifying a type, the type for the `response.data` gets inferred to be the same as the type of the request body. This leads to typescript errors in VS Code and during compile time when the response and request bodies in code doesn't have the same type (which is usually the case). This was not an issue in v0.21.4 - which I reverted to in order to get around this issue.

#### To Reproduce
 1. Install axios v0.22.0
 2. Add a type for the `response.data` like in this example:
```tsx
axios.post<ExpectedResponseBody>(`post url`, { foo: "bar" }, {});
```
Also look at the CodeSandbox example [here](https://codesandbox.io/s/axios-v0-22-0-type-issue-joty3?file=/src/App.tsx:897-1031)

#### Expected behavior
When specifying the expected type of the `response.data` in the post call, the request body shouldn't have the same expected type. And the inferred type for the request body shouldn't automatically get applied to `response.data`.

#### Environment
 - Axios Version 0.22.0
 - Adapter N/A
 - Browser N/A
 - Browser Version N/A
 - Node.js Version: 14.17.3
 - OS: Win 10
 - Additional Library Versions: Typescript 4.4.3

#### Additional context/Screenshots
Type for post method in axios v0.21.4
![image](https://user-images.githubusercontent.com/22648295/135825306-2f1850cf-4200-4766-899a-057a98b4fe3c.png)

Type for post method in axios v0.22.0. Note that `T` is also set to request data and config in this version - which is what I believe is the cause of the issue.
![image](https://user-images.githubusercontent.com/22648295/135825453-d7abbb3a-4db1-4fd3-98a0-b25567c633a0.png)


Gruntfile.js
files: ['lib/**/*.js', 'test/**/*.js', '!test/typescript/axios.js', '!test/typescript/out.js'],
        tasks: ['test']
      }
    },
    webpack: require('./webpack.config.js')
  });
  grunt.registerMultiTask('package2bower', 'Sync package.json to bower.json', function() {
    var npm = grunt.file.readJSON('package.json');
    var bower = grunt.file.readJSON('bower.json');
    var fields = this.data.fields || [];
    for (var i = 0, l = fields.length; i < l; i++) {
      var field = fields[i];
      bower[field] = npm[field];
    }
    grunt.file.write('bower.json', JSON.stringify(bower, null, 2));
  });
  grunt.registerMultiTask('package2env', 'Sync package.json to env.json', function() {
    var npm = grunt.file.readJSON('package.json');
    grunt.file.write('./lib/env/data.js', [
      'module.exports = ',
      JSON.stringify({
        version: npm.version
      }, null, 2),
      ';'].join(''));
  });
  grunt.registerTask('test', 'Run the jasmine and mocha tests', ['eslint', 'mochaTest', 'karma:single', 'ts']);
  grunt.registerTask('build', 'Run webpack and bundle the source', ['clean', 'webpack']);
  grunt.registerTask('version', 'Sync version info for a release', ['usebanner', 'package2bower', 'package2env']);
};