导入另一个文件后,类可见性会发生变化



我有一个带有打字稿的 angular2 项目,我面临着一个我无法理解的奇怪行为。我有一个包含组件的类文件(称为main.ts),因此它在文件顶部有一些导入,并且我创建了一个表示项目中其他地方的自定义类型的类(假设说models/typeFoo.ts)。在typeFoo.ts中,有一个简单的TypeFoo类,没有导入,不知何故,TypeFoo类型可以在main.ts中使用,而无需在main.ts中导入文件。这很奇怪?然后我在typeFoo.ts中导入另一个文件,main.ts自动抱怨TypeFoo不再可见。有人可以解释一下这里发生了什么吗?

main.ts
--models/typeFoo.ts
class TypeFoo {
   name:string;
}

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

如果没有根级别importexport则该文件被视为全局文件。添加importexport将其转换为模块(一件好事)。

这里涵盖了这一点: https://basarat.gitbooks.io/typescript/content/docs/project/modules.html

最新更新