Visual studio 2013 在所有文件中都可以访问所有类型脚本变量?

Visual studio 2013 在所有文件中都可以访问所有类型脚本变量?,visual-studio-2013,typescript,Visual Studio 2013,Typescript,文件A:var x:number=5 文件B:varx=function():编号{return5;} 错误:subsquent变量声明必须具有相同的类型。 删除所有引用(/)对我的项目没有影响。一切仍在编译,Intellisense仍在运行。据我理解,这绝对不是故意的行为。任何文件中声明的任何变量在所有文件中都可用,就像导致上述错误的变量一样。我知道发生了一些奇怪的事情,但我即将开始一个项目,在这个项目中,文件B将有许多与a同名的变量,但它们必须保持分离。所以这是一个问题。但是我找不到任何关于

文件A:
var x:number=5

文件B:
varx=function():编号{return5;}

错误:
subsquent变量声明必须具有相同的类型。

删除所有引用(
/
)对我的项目没有影响。一切仍在编译,Intellisense仍在运行。据我理解,这绝对不是故意的行为。任何文件中声明的任何变量在所有文件中都可用,就像导致上述错误的变量一样。我知道发生了一些奇怪的事情,但我即将开始一个项目,在这个项目中,文件B将有许多与a同名的变量,但它们必须保持分离。所以这是一个问题。但是我找不到任何关于这里发生的事情的资料。每个人都说你用reference指令控制Intellisense,你必须使用它


在“项目设置”>“类型脚本”或“工具”>“选项”中找不到与此相关的任何信息。

这是预期行为。使用模块分离不同文件中的变量

// file 1
module First {
    var x = 3;
}


// file 2
module Second {
    var x = function (): number { return 5; };
}
另请参见打字脚本和 javascript


另一个选项是使用AMD或TypeScript的CommonJS编译选项,请参见此

JavaScript不受文件限制。在任何函数外部声明的变量都是全局变量。但它存储在另一个文件中。因此,我不应该要求或声明Intellisense获取它吗?这与引用标记没有多大关系,因为它们对输出的javascript没有任何影响。之所以在TypeScript中出现错误,是因为您实际上正在执行:
window.x=5window.x=function(){return 5;}。因此,您将
window.x
声明为另一种类型。如果要解决此问题,可以保留
模块
(推荐)中包含的所有内容。。。或者,您也可以使用以下模块: