Angular表单控件是否应始终设置为非空?
Angular非空表单控件建议的反方观点探讨
Angular引入类型化及非空表单控件后,我常听到这样的建议:
“对于所有新项目,请始终将控件设为非空,示例如下:”
使用FormBuilder实现
formGroupA = this.fb.nonNullable.group({ User: [''], });
使用FormControl构造函数实现
formGroupB = this.fb.nonNullable.group({ User: new FormControl<EntraIdUserEntity | null>(null, {nonNullable: true}), });
有技术博客提出类似建议:
“如果您在新项目中开发表单,我们建议为每个控件设置nonNullable为true。这能简化生成数据的处理,因为类型会反映实际输入值。例如普通输入框总会生成空字符串或有值的字符串。”
但我认为该建议并非始终适用,因为很多场景下表单的初始值应为null:
图中表单的两个选择框不应有默认值,因此null是这些控件的最佳初始值。
类似需要以null作为初始值的场景还包括:
- 日期选择器
- 单选按钮
- 自定义组件
- 树形复选框
我理解文本框自然应以空字符串''作为初始值且设为非空,因为其初始状态“天然”为空。但在诸多其他场景中,null能更准确地反映实际情况。请问有哪些合理的反方观点?
内容的提问来源于stack exchange,提问作者David Mason
相关产品推荐
相关产品推荐

