从TypeScript声明全局命名空间变量

Oli*_*alo 24 meteor typescript

如何从typescript中显式声明全局命名空间中的变量?

我需要编译器生成以下javascript代码:

MyExtension = someFunction()
Run Code Online (Sandbox Code Playgroud)

不幸的是,我只能生成它

var MyExtension = someFunction()
Run Code Online (Sandbox Code Playgroud)

这与流星包的最新版本(仍在rc中)有关.Meteor引入了一种方法来定义包中的命名空间 - 问题是,变量需要在全局命名空间中定义(流星重新路由到它自己的Package对象).

有关于它的视频,请访问https://www.eventedmind.com/posts/meteor-linker-package-namespacing.

是否有某种global关键字可用或在计划中?

bas*_*rat 69

使用declare关键字.这些被称为环境声明.

declare var MyExtentention:any;
Run Code Online (Sandbox Code Playgroud)

  • 根据我的经验,这必须放在文件的顶部.如果将其置于另一个变量声明中,例如,在您使用全局变量的位置附近,编译器将抱怨"修改器不能出现在此处". (4认同)