-
-
Notifications
You must be signed in to change notification settings - Fork 2.8k
Labels
Description
Is there an existing issue for this?
- I have searched the existing issues and my issue is uniqueMy issue appears in the command-line and not only in the text editorTo pick up a draggable item, press the space bar. While dragging, use the arrow keys to move the item. Press space again to drop the item in its new position, or press escape to cancel.
Description Overview
This is a follow up of #3874, since flat
is Record<string, ReactFlatConfig>
, flat.xxx
or flat["xxx"]
could be undefined. The fix might be explicitly list recommended
, all
and jsx-runtime
as the key of the Record instead of using string
.

import tseslint from 'typescript-eslint'
import reactPlugin from 'eslint-plugin-react'
export default tseslint.config(
reactPlugin.configs.flat.recommended
)
Argument of type 'ReactFlatConfig | undefined' is not assignable to parameter of type 'InfiniteDepthConfigWithExtends'.
Expected Behavior
No type error
eslint-plugin-react version
v7.37.4
eslint version
9.17.0
node version
v22.13.0
okathira and jamesbvaughan
Activity
fix(types): fix types of flat configs
ljharb commentedon Jan 14, 2025
To be clear, this is not a bug - the types are correct - but you're right they could be more helpful.
[-][Bug]: flat configs are possibly undefined[/-][+][enhancement]: flat configs are possibly undefined[/+]fix(types): fix types of flat configs
fix(types): fix types of flat configs
fix(types): fix types of flat configs
fix(types): fix types of flat configs
CHC383 commentedon Jan 14, 2025
Just to share a workaround for Typescript users until we figure out how to type the configs properly
fix(types): fix types of flat configs
3dos commentedon Feb 11, 2025
As a workaround, I added a
.d.ts
file to fix original types which are too loose:This could be a fix for this lib but I see there is already an open PR. I can propose this fix in another PR if it makes sense
ljharb commentedon Feb 11, 2025
Please don’t open an additional PR; if you have a fix that could work, please post a link to the branch on the existing PR.
3dos commentedon Feb 11, 2025
The fix is just there. The branch is more a refactor with a breaking change, this is why I offered to create a simpler PR with the mentioned typing fix.
ljharb commentedon Feb 11, 2025
Since our types are built, that isn’t a possible fix we can apply, unfortunately.
3dos commentedon Feb 11, 2025
I don't understand, if your types are generated from the JSDocs, then the fix seems pretty simple; Change
Record<string, ReactFlatConfig>
toRecord<'all' | 'recommended' | 'jsx-runtime', ReactFlatConfig>
here:eslint-plugin-react/index.js
Line 100 in e6b5b41
Or am I missing something?
CHC383 commentedon Feb 11, 2025
@3dos There were two attempts to fix this issue, #3879 and #3882, #3879 was taking the same approach as yours and it didn't work due to #3879 (comment), you could try it yourself by applying your changes locally and test it through #3879 (comment)