rsnext/packages/next
Tim Neutkens 7de0f478c6
Ensure PromiseLikeOfReactNode is not included in .d.ts files (#63185)
Fixes the compile error on all test runs currently:
https://github.com/vercel/next.js/actions/runs/8243077904/job/22543375810?pr=63167#step:27:345

The root cause is that `.d.ts` files automatically include inferred
return types automatically, in this case `tsc` included React class
component `render()` return types in the `.d.ts` for e.g.
error-boundary.tsx / redirect-boundary.tsx. This is a problem because
yesterday that return type was changed:
bf659aefa7 (diff-1d64e275d9755825ba)[…]520436dbd8e1f1fd9fc66a9
and that change also removes one of the previous types that the `.d.ts`
in Next.js automatically included.

This PR changes the `render()` return type to be explicit instead of
inferred, this makes sure that the `.d.ts` file includes only `:
React.ReactNode` instead of the many types of return values allowed.

The reason I went with the explicit type instead of e.g. upgrading
`@types/react` is that upgrading the types would cause existing
applications that use older versions of `@types/react` would break. The
current change ensures it works in both cases.

<!-- Thanks for opening a PR! Your contribution is much appreciated.
To make sure your PR is handled as smoothly as possible we request that
you follow the checklist sections below.
Choose the right checklist for the change(s) that you're making:

## For Contributors

### Improving Documentation

- Run `pnpm prettier-fix` to fix formatting issues before opening the
PR.
- Read the Docs Contribution Guide to ensure your contribution follows
the docs guidelines:
https://nextjs.org/docs/community/contribution-guide

### Adding or Updating Examples

- The "examples guidelines" are followed from our contributing doc
https://github.com/vercel/next.js/blob/canary/contributing/examples/adding-examples.md
- Make sure the linting passes by running `pnpm build && pnpm lint`. See
https://github.com/vercel/next.js/blob/canary/contributing/repository/linting.md

### Fixing a bug

- Related issues linked using `fixes #number`
- Tests added. See:
https://github.com/vercel/next.js/blob/canary/contributing/core/testing.md#writing-tests-for-nextjs
- Errors have a helpful link attached, see
https://github.com/vercel/next.js/blob/canary/contributing.md

### Adding a feature

- Implements an existing feature request or RFC. Make sure the feature
request has been accepted for implementation before opening a PR. (A
discussion must be opened, see
https://github.com/vercel/next.js/discussions/new?category=ideas)
- Related issues/discussions are linked using `fixes #number`
- e2e tests added
(https://github.com/vercel/next.js/blob/canary/contributing/core/testing.md#writing-tests-for-nextjs)
- Documentation added
- Telemetry added. In case of a feature if it's used or not.
- Errors have a helpful link attached, see
https://github.com/vercel/next.js/blob/canary/contributing.md


## For Maintainers

- Minimal description (aim for explaining to someone not on the team to
understand the PR)
- When linking to a Slack thread, you might want to share details of the
conclusion
- Link both the Linear (Fixes NEXT-xxx) and the GitHub issues
- Add review comments if necessary to explain to the reviewer the logic
behind a change

### What?

### Why?

### How?

Closes NEXT-
Fixes #

-->


Closes NEXT-2787
2024-03-12 12:51:35 +00:00
..
compat
experimental/testmode
font
image-types
legacy
navigation-types/compat fix(navigation): allow useSelectedLayoutSegment(s) in Pages Router (#62584) 2024-02-29 13:14:52 +00:00
src Ensure PromiseLikeOfReactNode is not included in .d.ts files (#63185) 2024-03-12 12:51:35 +00:00
types feat(error-overlay): notify about missing html/body in root layout (#62815) 2024-03-06 10:59:53 +00:00
amp.d.ts
amp.js
app.d.ts
app.js
babel.d.ts
babel.js
cache.d.ts Dynamic APIs (#60645) 2024-01-23 16:06:12 -08:00
cache.js Dynamic APIs (#60645) 2024-01-23 16:06:12 -08:00
client.d.ts
client.js
config.d.ts
config.js
constants.d.ts
constants.js
document.d.ts
document.js
dynamic.d.ts
dynamic.js
error.d.ts
error.js
head.d.ts
head.js
headers.d.ts
headers.js
image.d.ts
image.js
index.d.ts fix(ts): auto-complete next/headers (#60817) 2024-01-18 15:01:22 +01:00
jest.d.ts
jest.js
license.md chore: update Copyright time from 2023 to 2024 (#60071) 2024-01-02 11:06:02 -08:00
link.d.ts
link.js
navigation.d.ts
navigation.js
og.d.ts
og.js
package.json v14.2.0-canary.16 2024-03-11 23:23:31 +00:00
README.md Fix duplicate line in README (#61691) 2024-02-06 20:45:14 +00:00
router.d.ts
router.js
script.d.ts
script.js
server.d.ts feat(ts): expose MiddlewareConfig interface (#61576) 2024-02-05 11:15:58 -08:00
server.js Fix next/server api alias for ESM pkg (#61721) 2024-02-06 16:59:24 +00:00
taskfile-ncc.js Use precompiled source-map in overlay middleware (#60932) 2024-01-22 10:04:34 +01:00
taskfile-swc.js Use new JSX transform (#56294) 2023-12-09 00:17:50 +01:00
taskfile-watch.js
taskfile-webpack.js avoid output of webpack stats (#61023) 2024-01-23 11:53:19 +01:00
taskfile.js refactor(cli): refactor cli to commander (#61877) 2024-03-01 23:12:47 +00:00
tsconfig.json Use new JSX transform (#56294) 2023-12-09 00:17:50 +01:00
web-vitals.d.ts
web-vitals.js
webpack.config.js merge pages and app overlays (#60899) 2024-02-14 11:28:13 +01:00

Next.js

Getting Started

Used by some of the world's largest companies, Next.js enables you to create full-stack web applications by extending the latest React features, and integrating powerful Rust-based JavaScript tooling for the fastest builds.

Documentation

Visit https://nextjs.org/docs to view the full documentation.

Community

The Next.js community can be found on GitHub Discussions where you can ask questions, voice ideas, and share your projects with other people.

To chat with other community members you can join the Next.js Discord server.

Do note that our Code of Conduct applies to all Next.js community channels. Users are highly encouraged to read and adhere to them to avoid repercussions.

Contributing

Contributions to Next.js are welcome and highly appreciated. However, before you jump right into it, we would like you to review our Contribution Guidelines to make sure you have a smooth experience contributing to Next.js.

Good First Issues:

We have a list of good first issues that contain bugs that have a relatively limited scope. This is a great place for newcomers and beginners alike to get started, gain experience, and get familiar with our contribution process.

Authors

A list of the original co-authors of Next.js that helped bring this amazing framework to life!


Security

If you believe you have found a security vulnerability in Next.js, we encourage you to responsibly disclose this and NOT open a public issue. We will investigate all legitimate reports. Email security@vercel.com to disclose any security vulnerabilities. Alternatively, you can visit this link to know more about Vercel's security and report any security vulnerabilities.