У меня когда-то была похожая проблема, которая заключается в том, что formControl даже не различает guish между числом и / или любым другим полем.
Закончилось создание моего собственного элемента управления
export class NumberControl extends FormControl {
_value: number | undefined;
get value() {
return this._value;
}
set value(value) {
this._value = (value || value === 0) ? Number(value) : undefined;
}
}
, который можно использовать, например,
formControl = new NumberControl('', field.validator);
Таким образом, вы можете быть уверены, что получите либо номер, либо неопределенное значение.
Надеюсь, это поможет