【发布时间】:2015-02-16 03:40:44
【问题描述】:
这是我的情况。我加载了一些包含此代码的旧版原生 JavaScript:
window.A = { x: { /* several things live here */ } };
这是重现我的问题的最少代码。实际上,A 是我们的全局“命名空间”对象,x 是一个具有一些我想在我较新的 Typescript 类中访问的旧功能的对象。
所以,在上面运行之后,我试图在嵌套的 Typescript 模块的一个类中访问x,如下所示:
module A {
module B {
export class Item {
constructor(){
alert(A.x);
}
}
}
}
Web Essessentials 和 typescriptlang.org 网站可以生成 JavaScript,实际上可以按要求工作,但是 VS2012' 分别 typescriptlang.org 的语法高亮显示两者都抱怨:
类型“typeof A”上不存在属性“x”。
这是有道理的。在this question 中,它显示了您需要如何通知编译器全局变量,所以我尝试添加...
declare var x: any;
...发送至module A,但这无济于事。我也试过...
declare var A.x: any;
...内外module A,但这也无济于事。
那么,我如何以某种方式通知 Typescript 编译器 A.x,以便我可以在 Item 中安全地访问它?
【问题讨论】:
-
附言。我非常愿意编辑我的问题标题,“当它在其他地方宣布时”提供的信息不是很多,但我很难想出更好的措辞。
标签: javascript typescript