Multiple TypeScript discriminations based on different properties

Solution 1:

That's just the nature of IntelliSense. Once you start to supply some of the combinations of the required props, the suggested ones will be narrowed to only the ones which are applicable to the current possible combination:

Before adding some props: Before adding some props

After adding some props: After adding some props