Angular 错误 TS2564 属性 'formGroup' 没有初始化器

Angular error TS2564 Property 'formGroup' has no initializer

  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 '';
    }
  }

登录 Angular 应用程序

错误 TS2564: 属性 'formGroup' 没有初始化器,在构造函数中没有明确赋值。

我该如何解决?

这跟严格初始化有关

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

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

 formGroup!: FormGroup;

将所有 formGroup 初始化移到顶层

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

  ngOnInit() {
  }