2014-12-04 70 views
1

我试图在模块内部声明一个变量,该变量是在typescript范围之外定义的(它在html中完成),但编译器不喜欢它。声明模块内的变量

module mymodule { 
    declare var myvar: any; 

    module innermodule { 
     function dosomething() { 
      console.log(mymodule.myvar); 
     } 
    } 
} 

编译器说“属性'myvar'不存在于'typeof mymodule'类型'”上。

如果我将其从declare更改为export然后它工作,但我宁愿避免这样做,因为它不相同,可能会导致脚本覆盖在html中注入的值。我建立了一个Playground code which demonstrate the problem

有关如何解决此问题的任何想法?
谢谢。

回答

3

'export'和'declare'可以一起使用。

module mymodule { 
    export declare var myvar: any; 

    module innermodule { 
     function dosomething() { 
      console.log(mymodule.myvar); 
     } 
    } 
} 
+0

哦,没有意识到这一点。谢谢! – 2014-12-04 13:01:00