如何修复“() => AbstractControl[]”类型的参数不可分配给 'array[]' 类型的参数?

How to fix Argument of type '() => AbstractControl[]' is not assignable to parameter of type 'array[]'?

我选择对我的表单使用响应式表单,我有一个复选框列表要检查,我正在尝试使用 FormArray 来执行此操作,但是当我在我的函数中调用我的函数时Ng for ,我收到了这个错误。是否可以更改 AbstractControl 类型或我是否必须修改数组的参数?

HTML

<tr class="list-group" style="list-style-type: none;" [formGroupName]="i" *ngFor="let engin of getControls() | appFilter: searchText; let i = index" >
            <input type="checkbox" formControlName="checked" [(ngModel)]="engin.isSelected" #fEngins name="list_engins[]"  value="{{engin.identifiant}}"
        (change)="isAllSelected()"/>
            <td>{{engin.num_facade}}</td>
            <td>{{engin.num_immatriculation_ef}}</td>
        </tr>

component.ts

getControls() {
    
    return (this.form.get('engins') as FormArray).controls;
  }

试试这个

getControls(): FormArray {
  return this.form.get('engins') as FormArray;
}

或者,您可以使用一些技巧将代码修改为:

get controls(): FormArray {
  return this.form.get('engins') as FormArray;
}

和用法:

*ngFor="let engin of controls.control"