testing-library / react-testing-library

🐐 Simple and complete React DOM testing utilities that encourage good testing practices.
https://testing-library.com/react
MIT License
18.84k stars 1.09k forks source link

Make @types/react-dom a Peer dependency #1318

Closed daniel-nagy closed 2 months ago

daniel-nagy commented 2 months ago

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.

MatanBobi commented 2 months ago

Thanks @daniel-nagy, this is already in the works: https://github.com/testing-library/react-testing-library/pull/1305. I'm closing this as it's a duplicate of: https://github.com/testing-library/react-testing-library/issues/1184.

daniel-nagy commented 2 months ago

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