Angular 构建错误:“‘AbstractControl’类型的参数不可分配给‘FormControl’类型的参数”

jpm*_*tin 1 angular2-forms angular angular4-forms

这是我尝试编译时遇到的错误(ng build --prod):

Error at /angular/src/app/.../xxx.component.html(xx,xxx): Argument of type 'AbstractControl' is not assignable to parameter of type 'FormControl'.
  Property 'registerOnChange' is missing in type 'AbstractControl'.
Run Code Online (Sandbox Code Playgroud)

有问题的代码(假设):

        this.myForm = new FormGroup({
            oneField: new FormControl('', [Validators.required,customValidator()])
        });
Run Code Online (Sandbox Code Playgroud)

和 :

    ngChangeOnefield(event: FormControl){
        // some code...
    }
Run Code Online (Sandbox Code Playgroud)

在我的 html 组件中,我有类似的东西:

<form [formGroup]="myForm" (ngSubmit)="onFormSubmit()">
    <!-- more code -->
    <htmltag (onSelect)="ngChangeOneField(oneField)"/>
    <!-- more code -->
</form>
Run Code Online (Sandbox Code Playgroud)

jpm*_*tin 5

我通过更改该代码解决了这个问题:

    ngChangeOnefield(event: FormControl){
        // some code...
    }
Run Code Online (Sandbox Code Playgroud)

    ngChangeOnefield(event: AbstractControl){
        // some code...
    }
Run Code Online (Sandbox Code Playgroud)

所以对于事件触发,事件的好类型是AbstractControl而不是 FormControl