efebba80a7
### What? Our [docs](https://nextjs.org/docs/app/building-your-application/routing/parallel-routes#convention) point out that `app/page.js` is equivalent to `app/@children/page.js`, however in practice this is not the case, and causes type errors when using `@children` slots as well as incorrect behavior when matching catch-all routes. ### Why? - When typechecking, `@children` slots would be added to the typeguard file for the associated layout, resulting in duplicate identifiers for the `children` prop - When determining where to insert catchall slots, the `hasMatchedSlots` check wasn't considering that the `@children` slot corresponds with the page component, so matching another page would clobber the previous one. ### How? - Filters out the `@children` slot when collecting slots for typechecking - Filters out the `@children` slot when running the `hasMatchedSlots` function in the catch-all normalizer Closes NEXT-1984 |
||
---|---|---|
.. | ||
@children | ||
@slot | ||
[...catchAll] | ||
nested | ||
layout.tsx |