将变量声明限制为模块

时间:2017-12-18 09:19:21

标签: typescript typescript-typings

假设我在一个模块中写作

declare global {
   var SomeVar: {};
}

现在任何模块都可以使用'SomeVar'全局变量。 我想将输入限制为当前文件。

有可能吗?

1 个答案:

答案 0 :(得分:1)

如果您在某个模块中,则可以使用:

declare var SomeVar: {};

SomeVar只能在该模块/文件中使用。

  

我需要引用一些不是来自我模块的全局内容。

从下面的示例中可以看出,从某个模块中可以看出,您可以在模块中同时使用SomeVarASomeVarB

declare global {
    var SomeVarA: {};
}

declare var SomeVarB: {};

const a = SomeVarA;
const b = SomeVarB;

这两个声明都可以表示一个全局变量,唯一的区别是SomeVarB 对程序中的任何其他模块可见,而SomeVarA是。< / p>

例如,在另一个模块中,会发生以下情况......

// OK
const a = SomeVarA;

// Cannot find name 'SomeVarB'. Did you mean 'SomeVarA'?
const b = SomeVarB;