Typescript,是否可以将方法添加到外部类原型?

Krz*_*dan 4 prototype typescript angular

可以说,我想为NgForm添加方法(类)

NgForm.prototype.markAsDirty = function (): void {
    let f: NgForm = this;
    Util.forEach(f.form.controls, (k, v: AbstractControl) => {
        v.markAsDirty(false);
    });
};
Run Code Online (Sandbox Code Playgroud)

这在打字稿中是否有可能?

我知道:

但它只适用于接口,而不适用于类.

Gün*_*uer 7

在Angular和TypeScript中,您通常使用类似的继承

export class MyForm extends NgForm {
  ...
}
Run Code Online (Sandbox Code Playgroud)

并注册您的自定义类,以便在整个应用程序中使用,而不是原始类.

bootstrap(AppComponent, [FORM_PROVIDERS, FORM_DIRECTIVES, provide(NgForm, { useClass: MyForm})]);
Run Code Online (Sandbox Code Playgroud)

我没有调查是否有任何额外的事情需要考虑NgForm,FORM_PROVIDERS或者FORM_DIRECTIVES使其正常工作.