OneHotEncoder linter issues on argument typing

### Describe the bug

The pyright lsp flags type warnings when a OneHotEncoder is initialized with categories as a list and/or dtype specified as anything but np.float64. Code runs fine, so this maybe should not be considered a bug. It is just a slight annoyance. 

### Steps/Code to Reproduce

```
from sklearn.preprocessing import OneHotEncoder

categories = [["a", "b"]]

ohe = OneHotEncoder(categories=categories, dtype=bool)
```

### Expected Results

The documentation indicates that **categories** can be a str="auto" or list and **dtype** appears to be handled downstream by numpy, but the default is initialized as np.float64 and this is somehow confusing the lsp. 

### Actual Results

```
Argument of type "list[list[str]]" cannot be assigned to parameter "categories" of type "str" in function "__init__" Pyright (reportGeneralTypeIssues) [5, 32]
 │        "list[list[str]]" is incompatible with "str" 
 │       Argument of type "type[bool]" cannot be assigned to parameter "dtype" of type "float64" in function "__init__" Pyright (reportGeneralTypeIssues) [5, 50]
 │        "type[bool]" is incompatible with "float64" 
 │        Type "type[bool]" cannot be assigned to type "float64"
```
### Versions

```shell
System:
    python: 3.11.4 | packaged by conda-forge | (main, Jun 10 2023, 18:08:17) [GCC 12.2.0]
executable: /home/scott/mambaforge/envs/sklearn_new/bin/python
   machine: Linux-6.4.4-zen1-1-zen-x86_64-with-glibc2.37

Python dependencies:
      sklearn: 1.2.2
          pip: 23.2.1
   setuptools: 68.0.0
        numpy: 1.23.5
        scipy: 1.10.1
       Cython: None
       pandas: 2.0.2
   matplotlib: 3.2.2
       joblib: 1.2.0
threadpoolctl: 3.1.0

Built with OpenMP: True

threadpoolctl info:
       user_api: openmp
   internal_api: openmp
         prefix: libgomp
       filepath: /home/scott/.local/lib/python3.11/site-packages/scikit_learn.libs/libgomp-a34b3233.so.1.0.0
        version: None
    num_threads: 12

       user_api: blas
   internal_api: openblas
         prefix: libopenblas
       filepath: /home/scott/.local/lib/python3.11/site-packages/numpy.libs/libopenblas64_p-r0-742d56dc.3.20.so
        version: 0.3.20
threading_layer: pthreads
   architecture: Haswell
    num_threads: 12

       user_api: blas
   internal_api: openblas
         prefix: libopenblas
       filepath: /home/scott/.local/lib/python3.11/site-packages/scipy.libs/libopenblasp-r0-41284840.3.18.so
        version: 0.3.18
threading_layer: pthreads
   architecture: Haswell
    num_threads: 12
```

COMMENT:
### I have an idea

> I found that on docstring, you should use list that has 1 dimension. Now , lets dive into how that worked even your list was 2 dimension. I think it is about array-api it has turned your 2 dimensional representation to pointer so your representation and 1 demensional representation have become same

----------
    categories : 'auto' or a list of array-like, default='auto'
        Categories (unique values) per feature:

        - 'auto' : Determine categories automatically from the training data.
        - list : ``categories[i]`` holds the categories expected in the ith
          column. The passed categories should not mix strings and numeric
          values within a single feature, and should be sorted in case of
          numeric values.

        The used categories can be found in the ``categories_`` attribute.

Labels: Bug, Needs Triage