あなたのbase
クラスにインデックス署名を追加することができます
export class base{
[prop: string]: option
constructor() {
base.prototype["g"] = new option({});
}
}
しかし、そうすることは、あなたがbase
インスタンス上のインデックス署名を経由してアクセスする任意のプロパティもoption
として入力されることを意味します。例:
let doesNotExist = new base()["doesNotExist"]; // Will compile fine without throwing error.
あなたは言葉だけで、これらのプロパティを追加することができ、プロトタイプにプロパティの限られたセットを追加しようとしている場合は:
export class base{
g: option
constructor() {
base.prototype["g"] = new option({});
}
}
let g = new base()["g"] // OK
let doesNotExist = new base()["doesNotExist"] // Error
コードは動作しません。 – Awired