組み込みクラス HTMLElement を追加のメソッドで拡張したいと思います。頭がおかしいのかもしれませんが、公式のイディオムは次のとおりだと思いました。
interface HTMLElement {
swapChildBefore(remove: HTMLElement, insert: HTMLElement, before: HTMLElement): void;
}
HTMLElement.prototype.swapChildBefore =
function (remove: HTMLElement, insert: HTMLElement, before: HTMLElement): void {
this.removeChild(remove)
this.insertBefore(insert, before)
}
少なくとも、プロトタイプは typescript でどのように拡張されますか?によると、、このようなものが機能するはずです。
ただし、これは HTMLElement の既存のメソッドをすべて隠しているようです。それは、同じ名前のクラスを非表示にするインターフェイスを宣言したためですか? しかし、このイディオムは、クラスでもある Object と Array ではうまく機能するようです。