#### Describe the bug
On the Interceptor section on README.md, where we are explaining the usage of the newly introduced `synchronous` and `runWhen` flags on `AxiosInterceptorOptions`, we are passing null for the optional parameters for example:

```javascript
axios.interceptors.request.use(function (config) {
  config.headers.test = 'I am only a header!';
  return config;
}, null, { synchronous: true });
```

When using this in a typescript project you'll get an error saying:

> Argument of type 'null' is not assignable to parameter of type '((error: any) => any) | undefined'

The reason is we didn't specify null as a type for our interceptor handlers.

#### To Reproduce
In a typescript project with `strictNullChecks` set to `true` , import axios and then write the following in you IDE(make sure typescript is configured in your IDE) 

```javascript
axios.interceptors.request.use(function (config) {
  config.headers.test = 'I am only a header!';
  return config;
}, null, { synchronous: true });
```

Your IDE will now report the following error

> Argument of type 'null' is not assignable to parameter of type '((error: any) => any) | undefined'

As per the `typescript` docs

>When `strictNullChecks` is `true`, `null` and `undefined` have their own distinct types and you’ll get a type error if you try to use them where a concrete value is expected.

#### Expected behavior
Type definition should explicitly include `null` as a type for the interceptor methods

#### Environment
 - Axios Version [e.g. 1.1.2]
 - Adapter [e.g. XHR/HTTP]
index.d.ts
celToken: CancelTokenStatic;
  Axios: typeof Axios;
  AxiosError: typeof AxiosError;
  readonly VERSION: string;
  isCancel: typeof isCancel;
  all: typeof all;
  spread: typeof spread;
  isAxiosError: typeof isAxiosError;
  toFormData: typeof toFormData;
  formToJSON: typeof formToJSON;
  CanceledError: typeof CanceledError;
  AxiosHeaders: typeof AxiosHeaders;
}
declare const axios: AxiosStatic;
export default axios;
