いろいろな方法がありますがdocument.createElement
、どのような方法でも使用することをお勧めします。例えば:
var image = <HTMLImageElement>document.createElement('img');
これをラップする便利な関数またはクラスを作成できます。
他の方法の 1 つは、たとえば、クラス定義の前に元の Image クラスへの参照を作成することです。
var ImageElement = Image;
...
export class Image {
...
}
var image = new ImageElement()
ただし、インスタンスとして認識されませんHTMLImageElement
。つまり、適切なコード補完はありません。
編集:コメントに記載されているように、インターフェースを拡張するための私の非機能的な試みは次のとおりです。Window
interface Window {
Image: new(width?: number, height?: number) => HTMLImageElement;
}
正しくコンパイルされます (つまり、エラーなし) が、Visual Studio ではエラーとしてフラグが付けられ、 と表示されDuplicate Identifier 'Image'
、インスタンスを作成しようとすると とnew window.Image()
フラグが付けられますnew expressions only valid on constructors
。興味深いことに、他のインターフェイスでも問題なく動作し、既に述べたように正しくコンパイルされます。