Parameter on `AppType` is used incorrectly
Nobody has claimed this yet.
- Dominant language
- JavaScript
- Stars
- 142k
- Forks
- 32.4k
- Avg merge
- 2d 14h
- Merged PRs (30d)
- 351
Description
Verify canary release
- I verified that the issue exists in the latest Next.js canary release
Provide environment information
environment information
sandbox@sse-sandbox-xhvisb:/sandbox$ yarn next info
yarn run v1.22.19
$ /sandbox/node_modules/.bin/next info
Operating System:
Platform: linux
Arch: x64
Version: #58~20.04.1-Ubuntu SMP Tue Jun 14 11:29:12 UTC 2022
Binaries:
Node: 14.19.3
npm: 6.14.17
Yarn: 1.22.19
pnpm: N/A
Relevant packages:
next: 13.0.3-canary.4
eslint-config-next: N/A
react: 18.2.0
react-dom: 18.2.0
warn - Latest canary version not detected, detected: "13.0.3-canary.4", newest: "13.0.3".
Please try the latest canary version (`npm install next@canary`) to confirm the issue still exists before creating a new issue.
Read more - https://nextjs.org/docs/messages/opening-an-issue
Done in 0.84s.
Note: warning at the end seems to be because I'm using next@canary (as instructed) but canary version is older than latest official release. My issue is present in either version.
Describe the Bug
Prop types defined by the parameter on AppType are incorrectly applied to MyApp's props.pageProps instead of MyApp's props.
Expected Behavior
Expected TS types to correctly reflect runtime types.
Link to reproduction
https://codesandbox.io/s/polished-tree-xhvisb?file=/pages/_app.tsx
To Reproduce
- Open the link to reproduction
- Observe code on left (with TS errors) and the produced page on right.
There's a TS error on line 13, complaining Property 'foo' does not exist on type 'AppPropsType<any, MyInitialProps>', even though props.foo does exist at runtime.
Also, there's no TS error on line 14, even though props.pageProps.foo does not exist at runtime.

Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Open pages/_app.tsx from the linked reproduction and inspect the AppType definition used by the example. Compare the declared props with the runtime values, then verify that the TypeScript diagnostics match the corrected behavior and that the reproduction's page still renders as expected.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- nextjs, react, typescript
- Domain
- frontend
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 55/100