无法向Angular TypeScript类(FormGroup)添加新方法

时间:2017-07-05 13:07:13

标签: angular typescript

我正在尝试向Angular的FormGroup类添加一个额外的方法,该类将从服务器设置组的状态+设置错误状态。

我在Angular4应用程序的form-helper.ts文件中有以下代码。

import { FormGroup } from '@angular/forms';

export interface FormGroup {
  setValueAndErrors(state: any, memberErrors: any);
}

FormGroup.prototype.setValueAndErrors = (state: any, memberErrors: any) => {
  this.setValue(state);
  // do some stuff with the memberErrors parameter
}

但编译器会在FormGroup.prototype.setValueAndErrors行上抛出错误。

C中的错误:/dev/AppName/AppName-Client/src/app/shared/utils/form-helper.ts(3,21):'FormGroup'类型中不存在属性'setValueAndErrors'。

1 个答案:

答案 0 :(得分:7)

以下编译:

declare module "@angular/forms/src/model" {
  interface FormGroup {
    setValueAndErrors(this: FormGroup, state: any, memberErrors: any): void;
  }
}

FormGroup.prototype.setValueAndErrors = function(this: FormGroup, state: any, memberErrors: any): void {
  this.setValue(state);
}

密钥似乎是使用引用包含FormGroup的实际模块/文件的模块名称。

此外,您需要解决this的使用问题。