Er zijn vele manieren, maar ik raad je aan om document.createElementop welke manier. Bijvoorbeeld:
var image = <HTMLImageElement>document.createElement('img');
Je kon het gemak functies of klassen die dit voor u wrap te creëren.
Een van de andere manieren zou zijn om bijvoorbeeld een verwijzing naar de oorspronkelijke afbeelding klasse te maken voordat je klas definitie:
var ImageElement = Image;
...
export class Image {
...
}
var image = new ImageElement()
het zal echter niet worden herkend als HTMLImageElementbijvoorbeeld dus geen passende code completion.
bewerking : hier is mijn niet-werkende poging om het vergroten Window-interface zoals vermeld in de opmerkingen:
interface Window {
Image: new(width?: number, height?: number) => HTMLImageElement;
}
Het compileert correct (dus zonder fouten), maar in Visual Studio het is gemarkeerd als een fout, zeggen Duplicate Identifier 'Image', en pogingen om een instantie te maken via new window.Image()zijn gemarkeerd zeggen new expressions only valid on constructors. Interessant is dat het werkt prima op andere interfaces, en zoals reeds vermeld, het correct compileert.