My opinion on spreading into Components, is it should generally be avoided. There’s only two scenarios where I think its can be acceptable:

  • You’re making a component that accepts a dynamic component and you want to pass the api object you’ve constructed to this dynamic component.
  • You’ve got a list item and an ItemComponent who have the exact same type.

That being said, if you didn’t spread in these scenarios, that would probably be better and spreading only helps to go fast when figuring stuff out.

In all scenarios, just make it harder to reason about in the codebase. Whether you’re returning to code you’ve written or code you’ve never seen, having to constantly go up or down a level to see what Types things have, is very tedious.