FormControlの例を取りますが、モジュール内の任意のコンストラクタメソッドに適用できます。angle FormControlクラスにメソッドを追加
ReactFormの既存のFormControlクラスにメソッドmyMethod(string): FormControl
を追加したいとします。
私はそれをこのように行うことができると思った:
import {FormControl} from '@angular/forms';
declare module '@angular/forms' {
interface FormControl {
myMethod(value: string): FormControl;
}
}
FormControl.prototype.myMethod = function(value) { /*TODO*/ };
const formControl = new FormControl('').myMethod('hello');
私は純粋javacript、 で働いているだろうが、私はtypescriptですコンパイル時にいくつかの警告やエラーを持っている:
- ShadowedName:FormControl を
- 'FormControl'はタイプのみを参照しますが、ここで値として使用されます
実際、私は両方のメッセージを理解していると思いますが、ここでどうすればいいですか? 私はそれに公式のスクリプトのドキュメント(https://www.typescriptlang.org/docs/handbook/declaration-merging.html)を読んだが、私と一致するケースを見つけることができません...
ありがとうたくさん!
最初に私は、私は増強は、既存の宣言のソースとないで行わなければならないことをどこかで読ん、本当に納得していないでした。これは間違いなく正しい答えです。ありがとう –