Istnieje wiele sposobów, ale ja polecam korzystania document.createElementw jakikolwiek sposób. Na przykład:
var image = <HTMLImageElement>document.createElement('img');
Można tworzyć funkcje convenience lub klas, które owinąć to dla ciebie.
Jednym z innych sposobów byłoby na przykład, aby utworzyć odwołanie do oryginalnej klasy obraz przed definicji klasy:
var ImageElement = Image;
...
export class Image {
...
}
var image = new ImageElement()
jednak nie będą uznawane jako HTMLImageElementprzykład, to znaczy bez odpowiedniego uzupełniania kodu.
edit : oto moja niepracująca próba zwiększenia się Windowinterfejs, jak wspomniano w komentarzach:
interface Window {
Image: new(width?: number, height?: number) => HTMLImageElement;
}
Kompiluje poprawnie (czyli bez błędów), ale w Visual Studio to oznaczane jako błąd, mówiąc Duplicate Identifier 'Image', i próbuje utworzyć instancję poprzez new window.Image()są oznaczone mówiąc new expressions only valid on constructors. Co ciekawe to działa dobrze na innych interfejsów, jak już wspomniano, kompiluje poprawnie.