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

时间:2015-02-18 13:57:42

标签: visual-studio-2013 typescript

文件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;选项中找到。

1 个答案:

答案 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