### Describe the bug

I'm trying to create a basic request interceptor to set `Authorization` header. According to `axios` type definitions, I can use `config.headers.setAuthorization` method in my interceptor.

![image](https://user-images.githubusercontent.com/35261612/214972510-c90758c6-c097-4884-ae60-42b8aa297e20.png)

![image](https://user-images.githubusercontent.com/35261612/214972687-6ec33ff6-ecf6-4676-acb9-06f5a72179af.png)


TypeScript compiles my source code correctly, but it fails to run, throwing a TypeError

![image](https://user-images.githubusercontent.com/35261612/214972867-f93f5d0c-82fe-405d-990c-b75a074ad2f8.png)



### To Reproduce

https://runkit.com/embed/70jjrl0otnq7

### Code snippet

```js
import axios from 'axios';

axios.interceptors.request.use((config) => {
  config.headers.setAuthorization('Bearer 🐻');

  return config;
});

await axios.get('https://www.google.com')
```


### Expected behavior

I expect `config.headers.setAuthorization()` to correctly set `Authorization` http header for HTTP requests in runtime according to type definitions.

### Axios Version

1.2.5

### Adapter Version

HTTP

### Browser

_No response_

### Browser Version

_No response_

### Node.js Version

18.13.0

### OS

Fedora 37

### Additional Library Versions

```bash
"@types/node": "^18.11.18"
"typescript": "^4.9.4"
```


### Additional context/Screenshots

_No response_
lib/core/AxiosHeaders.js
header = normalizeHeader(header);
    if (header) {
      const key = utils.findKey(this, header);
      if (key) {
        const value = this[key];
        if (!parser) {
          return value;
        }
        if (parser === true) {
          return parseTokens(value);
        }
        if (utils.isFunction(parser)) {
          return parser.call(this, value, key);
        }
        if (utils.isRegExp(parser)) {
          return parser.exec(value);
        }
        throw new TypeError('parser must be boolean|regexp|function');
      }
    }
  }
  has(header, matcher) {