我有以下表格:
const enum Fields {
FirstName = 'firstName',
LastName = 'lastName'
}
interface FormType {
[Fields.FirstName]: FormControl<string | null>;
[Fields.LastName]: FormControl<string | null>;
}
public form!: FormGroup<FormType>;
this.form = new FormGroup({
[Fields.FirstName]: new FormControl(null, { validators: Validators.required }),
[Fields.LastName]: new FormControl(null, { validators: Validators.required }),
});
使用enum是我為避免輸入錯誤而養成的習慣。
當我這樣做this.form.getRawValue().firstName時,型別firstName被正確定義為string | null. 但是,我更喜歡使用FormBuilder來構建我的表單,但我找不到使用FormBuilder. 我試過這個:
this.form = this._fb.group<FormType>({
[Fields.FirstName]: ['', Validators.required],
[Fields.LastName]: ['', Validators.required],
});
我當然可以使用FormGroup沒有任何型別的簡單,但它會破壞目的:p
但是,這甚至不能作為string | Validators. 我嘗試了不同的事情但沒有成功。
是否可以將 FormBuilder 與強型別表單一起使用?
uj5u.com熱心網友回復:
對于 Formbuilder,您可以提供原始值、控制元件或裝箱值,并且將自動推斷型別。
this.form = this._fb.group({
[Fields.FirstName]: ['', Validators.required],
[Fields.LastName]: ['', Validators.required],
});
this.form.value //value: Partial<{firstName: string | null;lastName: string | null;}>
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/485624.html
下一篇:不透明度角度上的CSS過渡
