Module 导入另一个文件后,类可见性将发生更改

Module 导入另一个文件后,类可见性将发生更改,module,typescript,visual-studio-2015,angular,Module,Typescript,Visual Studio 2015,Angular,我有一个带有typescript的angular2项目,我面临着一种我无法理解的奇怪行为。我有一个类文件(称之为main.ts),其中包含一个组件,因此它在文件顶部有一些导入,并且我创建了一个类,该类表示项目中其他地方的自定义类型(比如models/typeFoo.ts)。在typeFoo.ts中有一个简单的typeFoo类,没有导入,因此可以在main.ts中使用typeFoo类型,而不需要在main.ts中导入文件。这很奇怪?然后,我在typeFoo.ts中导入另一个文件,main.ts会自

我有一个带有typescript的angular2项目,我面临着一种我无法理解的奇怪行为。我有一个类文件(称之为main.ts),其中包含一个组件,因此它在文件顶部有一些导入,并且我创建了一个类,该类表示项目中其他地方的自定义类型(比如models/typeFoo.ts)。在typeFoo.ts中有一个简单的typeFoo类,没有导入,因此可以在main.ts中使用typeFoo类型,而不需要在main.ts中导入文件。这很奇怪?然后,我在typeFoo.ts中导入另一个文件,main.ts会自动抱怨typeFoo不再可见。有人能解释一下这是怎么回事吗

main.ts
--models/typeFoo.ts

class TypeFoo {
   name:string;
}
不知何故,TypeFoo类型可以在main.ts中使用,而无需在main.ts中导入文件。真奇怪

在没有根级<代码>导入< /代码>或<代码>导出< /代码>文件被认为是一个全局文件。添加

导入
导出
将其转换为模块(一件好事)

这在这里包括:

不知何故,TypeFoo类型可以在main.ts中使用,而无需在main.ts中导入文件。真奇怪

在没有根级<代码>导入< /代码>或<代码>导出< /代码>文件被认为是一个全局文件。添加

导入
导出
将其转换为模块(一件好事)

这里介绍了这一点:

我在某个地方读到过“文件是模块,模块是文件”,这对我来说意味着,创建一个文件会使它有自己的“作用域”,而全局用户看不到它。但你所说的是不同的,有道理的。我认为typescript的文档中没有明确说明这一点。非常感谢。我在某个地方读到过“文件是模块,模块是文件”,这对我来说意味着,创建一个文件会使它有自己的“作用域”,全局用户看不到它。但你所说的是不同的,有道理的。我认为typescript的文档中没有明确说明这一点。非常感谢。