testing-library / react-testing-library

🐐 Simple and complete React DOM testing utilities that encourage good testing practices.

Home Page:https://testing-library.com/react

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Make @types/react-dom a Peer dependency

daniel-nagy opened this issue · comments

Describe the feature you'd like:

@types/react-dom is a dependency. The reason is that the types from @testing-library/react directly reference these types, as noted in this PR #1001.

However, this may cause multiple versions of these types to be installed in a user's project. For example, when updating to React 19 beta.

Suggested implementation:

I think it would be better to make these types a peer dependency. If someone is using React, TypeScript, and React Testing Library, then they should install these types anyway.

In the event of a miss-match, they would get a warning from the package manager of an unmet peer-dependency, instead of the package manager silently installing multiple versions and resulting in a stampede of confusing type errors.

Describe alternatives you've considered:

Use overrides to force the correct version of these types to be installed. This is not good DX.

Teachability, Documentation, Adoption, Migration Strategy:

Users will need to install @types/react-dom themselves.

Thanks @daniel-nagy, this is already in the works: #1305.
I'm closing this as it's a duplicate of: #1184.

Thanks @MatanBobi, I guess I should look at the open PRs next time 😅