2016-05-30 77 views
0

我有一个带有打字稿的angular2项目,我正面临一个我无法理解的奇怪行为。我有一个包含组件的类文件(称为main.ts),所以它在文件的顶部有一些导入,我创建了一个代表项目中其他位置的自定义类型的类(让我们说型号/ typeFoo.ts)。在typeFoo.ts中有一个简单的TypeFoo类,没有导入,不知何故TypeFoo类型可以在main.ts中使用,而不需要在main.ts中导入文件。这很奇怪?然后我在typeFoo.ts中导入另一个文件的输入,并自动main.ts声明TypeFoo不再可见。有人能解释这里发生了什么吗?导入另一个文件后班级可见性发生变化

main.ts 
--models/typeFoo.ts 

class TypeFoo { 
    name:string; 
} 

回答

2

莫名其妙类型TypeFoo可以main.ts,而不需要使用的文件在main.ts.进口这是奇怪

在没有根级别的importexport该文件是考虑全球文件。添加一个importexport将其转换成一个模块(一件好事)。

这是这里介绍:https://basarat.gitbooks.io/typescript/content/docs/project/modules.html

+0

我看过的地方,“文件是一个模块,一个模块是一个文件”,这意味着对我来说,创建一个文件,使有自己的“范围”它不全球可见。但是你说的话是不同的,也是有道理的。我认为这在打字稿的文件中没有明确说明。谢谢! – Konst

相关问题