TypeScript:全局模块/命名空间中的访问类
我有以下情况:TypeScript:全局模块/命名空间中的访问类,typescript,Typescript,我有以下情况: module MyModule { export class Image { ... } var image = Image(); // returns an instance of MyModule.Image } 但是,我想创建HTMLImageElement的实例,而不是MyModule.Image。如何指定要实例化驻留在全局模块/命名空间中的类 谢谢大家! 有很多方法,但我建议以任何方式使用document.createElem
module MyModule {
export class Image {
...
}
var image = Image(); // returns an instance of MyModule.Image
}
但是,我想创建HTMLImageElement的实例,而不是MyModule.Image。如何指定要实例化驻留在全局模块/命名空间中的类
谢谢大家! 有很多方法,但我建议以任何方式使用
document.createElement
。例如:
var image = <HTMLImageElement>document.createElement('img');
但是,它不会被识别为HTMLImageElement
实例,即没有适当的代码完成
编辑:下面是我在非工作状态下尝试扩充窗口
界面,如评论中所述:
interface Window {
Image: new(width?: number, height?: number) => HTMLImageElement;
}
它可以正确编译(即没有错误),但在Visual Studio中,它被标记为错误,表示
重复标识符“Image”
,并尝试通过新窗口创建实例。Image()
被标记为新表达式仅在构造函数上有效。有趣的是,它可以在其他接口上正常工作,正如前面提到的,它可以正确编译。谢谢!虽然这在我的特殊情况下有帮助,但如果有一个操作符来处理全局名称空间,它会很有用,不是吗?是的,它会。能够访问窗口。图像
也可以,但是窗口
界面上没有定义图像
,我自己也无法在那里定义,不确定这是否可行。
interface Window {
Image: new(width?: number, height?: number) => HTMLImageElement;
}