文件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同名的变量,但它们必须保持分离。所以这是一个问题。但我找不到任何有关这里发生的事情的读物。每个人都说你用引用指令控制Intellisense,你必须使用它。
在项目设置&gt; TypeScript中找不到任何相关内容,也无法在工具&gt;选项中找到。
答案 0 :(得分:2)
这是预期的行为。使用模块分隔不同文件中的变量
// file 1
module First {
var x = 3;
}
// file 2
module Second {
var x = function (): number { return 5; };
}
另请参阅TypeScript module documentation和 javascript module pattern
另一种选择是使用TypeScript的AMD或CommonJS编译选项,请参阅article