Repository: angular
Issue: `FormBuilder.array()` has wrong inference with union types
Labels: area: forms,P3

### Which @angular/* package(s) are the source of the bug?

forms

### Is this a regression?

No

### Description

The `FormBuilder.array()` method is usually used like this:
```ts
type MovieFormGroup = FormGroup<{ type: FormControl<'movie'>, title: FormControl<string> }>
// works great
const movies = fb.array<MovieFormGroup>([])
//    ^? FormArray<FormGroup<{ type: FormControl<'movie'>, title: FormControl<string> }>>
movies.push(fb.group({ type: 'movie', title: '' }))
const moviesValue = movies.value;
//    ^? Array<Partial<{ type: 'movie', title: '' }>>
```

Now let's consider that we want movies or books. We can use a union type, but that sadly brokes the type inference:
```ts
// let's use a union type, because we want movies or books
type BookFormGroup = FormGroup<{ type: FormControl<'book'>, title: FormControl<string> }>
// sadly this breaks the types
const items = fb.array<MovieFormGroup | BookFormGroup>([])
//    ^? FormArray<FormRecord<AbstractControl<any, any>>> which is incorrect
items.push(fb.group({ type: 'movie', title: '' }));
items.push(fb.group({ type: 'show', title: '' })); // should not compile but does
const itemsValue = items.value;
//    ^? Array<Partial<{ [x]: string: any }>>
```

### Please provide a link to a minimal reproduction of the bug

https://www.typescriptlang.org/play?#code/JYWwDg9gTgLgBAbzgOQgO2QVwDbYIYBG2ApgGLQgBCmw2AJsVADRzlQgDiUEmYLbIAMLoY3bPwoBBKFDwBPOAF84AM24g4AcgACeNAHMceKAHoVFAM6aA3ACgYcsMTgBZCADdgZClx5g4ALysPty8ADxIDk4AXMHswmiiENhhmiAeXpoAfCwwwDAksQIJSSkWosAGWUpZtgDG6OWqBLGoGDj4RN7s1LQMUIFwaB1weBZwmGgA1mgQAO5oo+NtWLiEJAK99Ix2tiYmcHPQU+P6UMR4MPWN8OmexONBKgQAdMaycmFu9wK+vFkACgA2gBdACUewOcGhAD0APy2O5eCwvMCYCwACwBzxeZz8AMijmIsTSGWImly+UKWk0SjBEIaaCaSIeADU8NhMM4giyUe4OVy7PtobCEZC4CQYJpxujnHgJmhgOg4FFiCwCMQ6nhZYdnHM9LcyeNoHACBAICd7ES4JRzVNfqF-EEHX4IiqiUUKCUxKkzRbspSCsS4kIRD7ylBKvpqopasKLHg6NgFDAMcBxgRzngTiqMc5VRZrkz4PliCBHs03jJ5F8yS7eHAAD42u31sCA0EQ4Ui+G2Uvl1HorE4vG8AnumJaFkUlVU4OaWmKel2fsotGY7GvUdgceqkmY+YzvJBkmL5dweMYnj0IYQeBHKBTItNVfszncuCrl7899CqGi2xxS1JpUzlasFAgFQ4EZUpxjoCAHjQTR4DzbAwGfEsYDLCxpA+SQKxxd55GBEEljgXCa2+Lw2ybFsLTbLIu3-OBe1XCi5HwwcNxHR1dw9KcySPOdTzpMEVyw8t2M49dhy3XjCUnaUrzmISTxpUTrAvA4DxwOhb3vY4MM-CScPA-C3y5QY2LMvkBWIP8RRYsVhXQZNDmOYweDQPSAElVC8vT0xVCBoLGeAxgVGZ5jQIzV0EMLBkI8CSLBMjJiihYyIEdjax+EI-Fo216Py-5xR7BE4rCrjZNxeSJ3nadA2pBcNPFbQYAsABaYB9Fmc4+xM+LymqzdavxBT5wPFSmvnM8xK0uB4IefT3MfFgIuIAAPJw6iwuhYsGsKLI-Srhp-QUyoA2wgA

### Please provide the exception or error you saw

```true
TypeScript should properly infer the type of the form array when using union type
```


### Please provide the environment you discovered this bug in (run `ng version`)

```true
Angular CLI: 15.0.2
Node: 16.17.0
Package Manager: yarn 1.22.17
OS: darwin arm64

Angular: 15.0.2
... animations, cli, common, compiler, compiler-cli, core, forms
... localize, platform-browser, platform-browser-dynamic, router

Package                         Version
---------------------------------------------------------
@angular-devkit/architect       0.1500.2
@angular-devkit/build-angular   15.0.2
@angular-devkit/core            15.0.2
@angular-devkit/schematics      15.0.2
@angular/cdk                    15.0.1
@schematics/angular             15.0.2
rxjs                            7.6.0
typescript                      4.8.4
```


### Anything else?

_No response_