角度错误 TS2564 属性“formGroup”没有初始值设定项

时间:2021-05-20 07:39:39

标签: angular typescript formgroups

  formGroup: FormGroup;
  constructor(private formBuilder: FormBuilder) { }

  ngOnInit() {
    this.createForm();
  }

  createForm() {
    this.formGroup = this.formBuilder.group({
      'username': ['', Validators.required],
      'password': ['', Validators.required],
    });
  }


  getError(el) {
    switch (el) {
      case 'user':
        if (this.formGroup.get('username').hasError('required')) {
          return 'login is required';
        }
        break;
      case 'pass':
        if (this.formGroup.get('password').hasError('required')) {
          return 'password is required';
        }
        break;
      default:
        return '';
    }
  }

登录angualr应用

错误 TS2564:属性“formGroup”没有初始值设定项,并且未在构造函数中明确分配。

我该如何解决?

2 个答案:

答案 0 :(得分:2)

您可以使用非空断言运算符来防止类型检查器抛出错误

 formGroup!: FormGroup;

将所有的 formGroup 初始化移动到顶层

  formGroup = this.formBuilder.group({
      'username': ['', Validators.required],
      'password': ['', Validators.required],
  });
   
  constructor(private formBuilder: FormBuilder) { }

  ngOnInit() {
  }

答案 1 :(得分:1)

这与严格初始化有关。

  1. 添加!要知道这未初始化
formGroup!: FormGroup;
  1. 添加 |undefined 作为附加类型
formGroup: FormGroup | undefined