我有一个类MYMODULE.Image {},但我想实例化一个HTMLImageElement类型的对象。当我调用new Image()
时,TypeScript认为我想实例化MYMODULE.Image,即使我使用
image: HTMLImageElement = new Image();
我可以以某种方式显式调用全局Image类吗?我试过了
image: HTMLImageElement = new Window.Image();
但无济于事。
像C ++ ::Image
这样的范围解析运算符会很方便。也许它在那里,我只是没有看到它。
谢谢
答案 0 :(得分:2)
创建HTMLImage元素可以这样做。
document.createElement("img");
根据Mozilla文档,它是相同的:https://developer.mozilla.org/en-US/docs/Web/API/HTMLImageElement.Image
编辑:
如果你想使用Image构造函数,你可能需要创建一个如下所示的新界面:
interface Window {
Image: {
prototype: HTMLImageElement;
new (): HTMLImageElement;
};
}
var a = new window.Image()
答案 1 :(得分:0)
您可以巧妙地使用typeof
:
declare var imageType:typeof Image; // Create a alias so you can refer to the type
interface Window{
// Use the `typeof alias` because `Image` would be confused in the context
Image: typeof imageType;
}
完整样本:
declare var imageType:typeof Image;
interface Window{
Image: typeof imageType;
}
module Foo{
class Image{}
var image: HTMLImageElement = new window.Image();
}