Components: [MatStepper] FormControlLike is not compatible with FormGroup

Created on 18 Apr 2019  路  4Comments  路  Source: angular/components

What is the expected behavior?

The stepControl attribute of the CdkStep/MatStep classes should be castable to/assignable from a FormGroup or FormArray.

What is the current behavior?

Conversion of type 'FormControlLike' to type 'FormGroup' may be a mistake because neither type sufficiently overlaps with the other. If this was intentional, convert the expression to 'unknown' first. Property 'controls' is missing in type 'FormControlLike'.
Happens during compilation when trying to cast FormControlLike to a FormGroup.

Type FormGroup is not assignable to type FormControlLike
Is the warning shown in HTML files when trying to assign a FormGroup to the stepControl input of a MatStep.

What are the steps to reproduce?

Create a MatStepper with a FormGroup assigned to a stepControl of one of the MatSteps. To reproduce the compilation issue, try to cast the stepControl of one step into a FormGroup within a TypeScript function.

Which versions of Angular, Material, OS, TypeScript, browsers are affected?

Material Version 7.3.7

P3 materiastepper

Most helpful comment

This also causes massive problems under Ivy rendering. I have an Angular 8 project, and recently opted into Ivy rendering. Automatically every instance of [stepControl] that I was using in stepper threw errors because of me assigning a FormGroup instance to the [stepControl]. Ivy apparently is quite a bit more strict on validation - even more than traditional AOT has been. Since FormGroup doesn't have registerOnChange or registerOnDisabledChange, I'm basically stuck and cannot use both Ivy rendering and [stepControl], since there's no way I can see to treat my FormGroup as a FormControlLike, since FormControlLike is not exported.

All 4 comments

I have this error as well. It is possibly my editor, the latest WebStorm?

This also causes massive problems under Ivy rendering. I have an Angular 8 project, and recently opted into Ivy rendering. Automatically every instance of [stepControl] that I was using in stepper threw errors because of me assigning a FormGroup instance to the [stepControl]. Ivy apparently is quite a bit more strict on validation - even more than traditional AOT has been. Since FormGroup doesn't have registerOnChange or registerOnDisabledChange, I'm basically stuck and cannot use both Ivy rendering and [stepControl], since there's no way I can see to treat my FormGroup as a FormControlLike, since FormControlLike is not exported.

Appeared only after enabling ivy
latest material

Was this page helpful?
0 / 5 - 0 ratings

Related issues

RoxKilly picture RoxKilly  路  3Comments

michaelb-01 picture michaelb-01  路  3Comments

crutchcorn picture crutchcorn  路  3Comments

LoganDupont picture LoganDupont  路  3Comments

alanpurple picture alanpurple  路  3Comments