feat(forms): expand NgModel disabled type to work with strict template type checking (#34438)
NgModel internally coerces any arbitrary value that will assigned to the `disabled` `@Input` to a boolean. This has been done to support the common case where developers set the disabled attribute without a value. For example: ```html <input type="checkbox" [(ngModel)]="value" disabled> ``` This worked in View Engine without any errors because inputs were not strictly checked. In Ivy though, developers can opt-in into strict template type checking where the attribute would be flagged. This is because the `NgModel#isDisabled` property type-wise only accepts a `boolean`. To ensure that the common pattern described above can still be used, and to reflect the actual runtime behavior, we should add an acceptance member that makes it work without type checking errors. Using a coercion member means that this is not a breaking change. PR Close #34438
This commit is contained in:

committed by
Kara Erickson

parent
76e4870a3f
commit
b1d4c58b81
1
tools/public_api_guard/forms/forms.d.ts
vendored
1
tools/public_api_guard/forms/forms.d.ts
vendored
@ -415,6 +415,7 @@ export declare class NgModel extends NgControl implements OnChanges, OnDestroy {
|
||||
ngOnChanges(changes: SimpleChanges): void;
|
||||
ngOnDestroy(): void;
|
||||
viewToModelUpdate(newValue: any): void;
|
||||
static ngAcceptInputType_disabled: boolean | string;
|
||||
}
|
||||
|
||||
export declare class NgModelGroup extends AbstractFormGroupDirective implements OnInit, OnDestroy {
|
||||
|
Reference in New Issue
Block a user