属性 'push' 在类型“() => void”上不存在。如何解决 Typescript Angular 10 中的这个错误?

Property 'push' does not exist on type '() => void'. How to resolve this error in Typescript Angular 10?

当我在 Typescript 的 Angular 10 项目的数组上使用 push() 时出现此错误。

错误

Property 'push' does not exist on type '() => void'.ts(2339)

请帮我弄清楚为什么会出现这个错误,我该如何解决?

export class GrantProgramComponent implements OnInit {
  grantProgramForms : any = this.fb.array([]); 
  constructor(private fb: FormBuilder ) { }

  ngOnInit(): void {
    this.AddGrantProgramForms(); 
  }


  AddGrantProgramForms(){
    this.AddGrantProgramForms.push(this.fb.group({
      Id : [0], 
      ProgramName : [''], 
      ProgramCode : [''], 
      StartDate : [''],
      EndDate : [''], 
      Status : [false]
    })); 
  }

}

在构造函数中初始化表单生成器之前,您不能使用它。将您的逻辑移动到构造方法中:

 grantProgramForms : any 

 constructor(private fb: FormBuilder ) {
   this.grantProgramForms = this.fb.array([]); 
 }

然后在您的 addGrantProgramForms 方法中您引用了错误的变量,我认为您的意思是 this.grantProgramForms.push 而不是 this.AddGrantProgramForms.push