Почему значения построителя форм не соответствуют типу согласно объявленному в интерфейсе? Как мне убедиться, что мой ввод чисел не преобразуется в строку в formGroup
, учитывая, что я строго установил, что пользователь может вводить только цифры.
У меня есть образец формы здесь:
<form [formGroup]="exampleForm" (ngSubmit)="onSubmit()">
<div class="form-group">
<label>Name: </label>
<input class="form-control" formControlName="name">
<br><label>Age: </label>
<input class="form-control" formControlName="age">
<br><button>Submit</button>
</div>
</form>
и интерфейс, который имеет те же атрибуты, что и входные данные формы:
export interface SampleInterface {
name: string;
age: number;
}
после отправки формы я присваиваю значения формы экземпляру объекта интерфейса. Я думал, что это будет автоматически соответствовать типу age
- number
согласно интерфейсу. Однако это не тот случай, когда я попытался напечатать экземпляр объекта интерфейса и вижу, что он воспринимается как строка.
В моем component.ts
:
onSubmit(){
let submittedData = this.exampleForm.value;
this.sampleObject = submittedData;
console.log(this.sampleObject);
}
Этов консоли печатается:
>{name: "Mike", age: "20"}
age: "20"
name: "Mike"
__proto__: Object
Вы можете найти демо ЗДЕСЬ .