所有 Typescript 变量都可以在所有文件中访问吗?

All Typescript Variables Are Accessible In All Files?

文件A:var x: number = 5;

文件 B:var x = function (): number { return 5; };

错误:Subsqeuent variable declarations must have same type.

删除所有引用(///<reference path='/Scripts/example.ts' />)对我的项目没有影响。一切仍在编译,Intellisense 仍然有效。据我了解,这绝对不是故意的行为。在任何文件中声明的任何变量在所有文件中都可用,例如导致上述错误的那个。我已经意识到发生了一些奇怪的事情,但我即将开始一个项目,其中文件 B 将包含许多与 A 同名的变量,但它们必须保持独立。所以这是一个问题。但我找不到任何关于这里发生的事情的读物。大家都说你用reference指令来控制Intellisense,你一定要用它。

在“项目设置”>“TypeScript”和“工具”>“选项”中找不到任何相关信息。

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

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


// file 2
module Second {
    var x = function (): number { return 5; };
}

另请参阅 TypeScript module documentation 和 javascriptmodule pattern

另一种选择是使用 TypeScript 的 AMD 或 CommonJS 编译选项,请参阅此 article