Javascript TypeScript--全局范围中的新图像()
我有一个类MYMODULE.Image{},但我想实例化一个HTMLImageElement类型的对象。当我调用Javascript TypeScript--全局范围中的新图像(),javascript,typescript,Javascript,Typescript,我有一个类MYMODULE.Image{},但我想实例化一个HTMLImageElement类型的对象。当我调用newimage()时,TypeScript认为我想实例化MYMODULE.Image,即使我使用 image: HTMLImageElement = new Image(); 我可以显式地调用全局映像类吗?我试过了 image:HTMLImageElement=newwindow.image()但无效 像C++的::Image这样的范围解析操作符会很方便。也许它就在那里,而我就是看
newimage()
时,TypeScript认为我想实例化MYMODULE.Image,即使我使用
image: HTMLImageElement = new Image();
我可以显式地调用全局映像类吗?我试过了
image:HTMLImageElement=newwindow.image()代码>但无效
像C++的::Image
这样的范围解析操作符会很方便。也许它就在那里,而我就是看不到
谢谢创建HTMLImage元素可以这样做
document.createElement(“img”)代码>
根据Mozilla文档,它是相同的:
编辑:
如果要使用映像构造函数,可能需要创建一个新接口,如下所示:
interface Window {
Image: {
prototype: HTMLImageElement;
new (): HTMLImageElement;
};
}
var a = new window.Image()
您可以巧妙地使用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();
}
不,它看起来像是编译成JavaScript的TypeScript;)我接受document.createElement(“img”);作为一个答案,因为它是最无麻烦的。谢谢你有趣的回答!查看[我在TypeScript[1]中的最新实验]: