Is there an easy way, or syntactic sugar to split a combinened type back into a basetype withouth specifying all the properties by hand.

```
type AType = {
  A1Prop: string
  A2Prop: string
  SharedProp: string
}

type BType = {
  B1Prop: string
  B2Prop: string
  SharedProp: string
}

type ABType = AType & BType

const someObject: ABType = {
  A1Prop: 'string',
  A2Prop: 'string',
  B1Prop: 'string',
  B2Prop: 'string',
  SharedProp: 'string'
} 

// destructure here all props of AType
const { A1Prop, A2Prop, SharedProp, ...rest } = someObject
// and split it manually 
const AllPropsOfA : AType = {A1Prop, A2Prop, SharedProp} 
const AllPropsOfB : BType = {...rest, SharedProp}

```

Is there an easier way *without specifying all properties* of `Atype`.  

Maybe there is a helper method available? along the lines of: `const AllPropsOfA = GetAllPropsOf<AType>(someObject)`

the resulting object should only contain properties of AType,

```
{
  "A1Prop": "string",
  "A2Prop": "string",
  "SharedProp": "string"
}

```