diff --git a/goldens/public-api/forms/index.md b/goldens/public-api/forms/index.md index ced3a85904b41..0cfa9e0a8025d 100644 --- a/goldens/public-api/forms/index.md +++ b/goldens/public-api/forms/index.md @@ -559,6 +559,18 @@ export class FormsModule { static ɵmod: i0.ɵɵNgModuleDeclaration; } +// @public +export const isFormArray: (control: unknown) => control is FormArray; + +// @public +export const isFormControl: (control: unknown) => control is FormControl; + +// @public +export const isFormGroup: (control: unknown) => control is FormGroup; + +// @public +export const isFormRecord: (control: unknown) => control is FormRecord>; + // @public export class MaxLengthValidator extends AbstractValidatorDirective { maxlength: string | number | null; diff --git a/packages/forms/src/forms.ts b/packages/forms/src/forms.ts index 799a395e7bff2..4ff86e766bbc9 100644 --- a/packages/forms/src/forms.ts +++ b/packages/forms/src/forms.ts @@ -43,9 +43,9 @@ export {SelectMultipleControlValueAccessor, ɵNgSelectMultipleOption} from './di export {AsyncValidator, AsyncValidatorFn, CheckboxRequiredValidator, EmailValidator, MaxLengthValidator, MaxValidator, MinLengthValidator, MinValidator, PatternValidator, RequiredValidator, ValidationErrors, Validator, ValidatorFn} from './directives/validators'; export {ControlConfig, FormBuilder, NonNullableFormBuilder, UntypedFormBuilder, ɵElement} from './form_builder'; export {AbstractControl, AbstractControlOptions, FormControlStatus, ɵCoerceStrArrToNumArr, ɵGetProperty, ɵNavigate, ɵRawValue, ɵTokenize, ɵTypedOrUntyped, ɵValue, ɵWriteable} from './model/abstract_model'; -export {FormArray, UntypedFormArray, ɵFormArrayRawValue, ɵFormArrayValue} from './model/form_array'; -export {FormControl, FormControlOptions, FormControlState, UntypedFormControl, ɵFormControlCtor} from './model/form_control'; -export {FormGroup, FormRecord, UntypedFormGroup, ɵFormGroupRawValue, ɵFormGroupValue, ɵOptionalKeys} from './model/form_group'; +export {FormArray, isFormArray, UntypedFormArray, ɵFormArrayRawValue, ɵFormArrayValue} from './model/form_array'; +export {FormControl, FormControlOptions, FormControlState, isFormControl, UntypedFormControl, ɵFormControlCtor} from './model/form_control'; +export {FormGroup, FormRecord, isFormGroup, isFormRecord, UntypedFormGroup, ɵFormGroupRawValue, ɵFormGroupValue, ɵOptionalKeys} from './model/form_group'; export {NG_ASYNC_VALIDATORS, NG_VALIDATORS, Validators} from './validators'; export {VERSION} from './version'; diff --git a/packages/forms/src/model/form_array.ts b/packages/forms/src/model/form_array.ts index cac4c99980df8..ad0eb86cf98b3 100644 --- a/packages/forms/src/model/form_array.ts +++ b/packages/forms/src/model/form_array.ts @@ -530,4 +530,10 @@ export type UntypedFormArray = FormArray; export const UntypedFormArray: UntypedFormArrayCtor = FormArray; +/** + * @description + * Asserts that the given control is an instance of `FormArray` + * + * @publicApi + */ export const isFormArray = (control: unknown): control is FormArray => control instanceof FormArray; diff --git a/packages/forms/src/model/form_control.ts b/packages/forms/src/model/form_control.ts index bfe5400183bb0..32baac2154ee9 100644 --- a/packages/forms/src/model/form_control.ts +++ b/packages/forms/src/model/form_control.ts @@ -561,5 +561,11 @@ export type UntypedFormControl = FormControl; export const UntypedFormControl: UntypedFormControlCtor = FormControl; +/** + * @description + * Asserts that the given control is an instance of `FormControl` + * + * @publicApi + */ export const isFormControl = (control: unknown): control is FormControl => control instanceof FormControl; diff --git a/packages/forms/src/model/form_group.ts b/packages/forms/src/model/form_group.ts index e8ca42d952bcd..aa612aa29260d 100644 --- a/packages/forms/src/model/form_group.ts +++ b/packages/forms/src/model/form_group.ts @@ -604,6 +604,12 @@ export type UntypedFormGroup = FormGroup; export const UntypedFormGroup: UntypedFormGroupCtor = FormGroup; +/** + * @description + * Asserts that the given control is an instance of `FormGroup` + * + * @publicApi + */ export const isFormGroup = (control: unknown): control is FormGroup => control instanceof FormGroup; /** @@ -706,5 +712,11 @@ export interface FormRecord { getRawValue(): {[key: string]: ɵRawValue}; } +/** + * @description + * Asserts that the given control is an instance of `FormRecord` + * + * @publicApi + */ export const isFormRecord = (control: unknown): control is FormRecord => control instanceof FormRecord;