Есть много способов, но я бы рекомендовал использовать document.createElementлюбой способ. Например:
var image = <HTMLImageElement>document.createElement('img');
Вы можете создать удобные функции или классы, которые окутывают это для вас.
Один из других способов было бы, например, чтобы создать ссылку на исходный класс изображений до вашего определения класса:
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. Интересно , что прекрасно работает на других интерфейсов, и , как уже упоминалось, это правильно компилирует.