Ci sono molti modi, ma mi consiglia di utilizzare document.createElementin qualsiasi modo. Per esempio:
var image = <HTMLImageElement>document.createElement('img');
È possibile creare funzioni di convenienza o classi che avvolgono questo per voi.
Uno degli altri modi sarebbe per esempio per creare un riferimento alla classe immagine originale prima della definizione di classe:
var ImageElement = Image;
...
export class Image {
...
}
var image = new ImageElement()
tuttavia non sarà riconosciuto come HTMLImageElementesempio, cioè non completamento del codice appropriato.
Edit : ecco la mia non-lavoro tentativo di aumentare l' Windowinterfaccia come accennato nei commenti:
interface Window {
Image: new(width?: number, height?: number) => HTMLImageElement;
}
Compila correttamente (cioè senza errori), ma in Visual Studio è contrassegnato come un errore, dicendo Duplicate Identifier 'Image', e tenta di creare un'istanza via new window.Image()vengono contrassegnati dicendo new expressions only valid on constructors. È interessante notare che funziona bene su altre interfacce, e come già accennato, si compila correttamente.