我想在 Angular 中使用类型化表单。
在我的场景中,我有一个表单组,它应该有一些属性。
它们都应该是可空的,并且以“null”作为初始值。
但它们也应该是类型化的。
我还想使用表单生成器来使我的代码简短而简洁。
但我却没能做到我想做的事。
我的一个方法是这样的:
formGroup = this.fb.group<{
User: FormControl<string | null>,
Site: FormControl<string | null>,
AccessLevel: FormControl<string | null>,
Application: FormControl<string | null>,
BusinessProcessArea: FormControl<string | null>,
}>({
User: [null, Validators.required],
Site: [null, Validators.required],
AccessLevel: [null, Validators.required],
Application: [null, Validators.required],
BusinessProcessArea: [null, Validators.required],
});
但是,typescript 并不喜欢我的做法,并在此处抛出错误。
此外,我需要将所有属性翻倍,这也使这段代码难以维护。
我很想做这样的事:
formGroup = this.fb.group({
User<string>: [null, Validators.required],
Site<string>: [null, Validators.required],
AccessLevel<string>: [null, Validators.required],
Application<string>: [null, Validators.required],
BusinessProcessArea<string>: [null, Validators.required],
});
我知道这不是有效的 Typescript,而且我无法将类型定义放在那里。
但这应该表明我的愿望:
- 允许可空字段
- 同时是类型字段(即:string|null)
- 无需重复
- 可以使用表单生成器来获得简洁清晰的语法
我怎样才能实现这个目标?