【问题标题】:Class visibility changes after importing another file导入另一个文件后类可见性更改
【发布时间】:2016-09-28 13:09:53
【问题描述】:

我有一个带有 typescript 的 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;
}

【问题讨论】:

    标签: module typescript visual-studio-2015 angular


    【解决方案1】:

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

    在没有根级别importexport 的情况下,该文件被视为一个全局 文件。添加importexport 会将其转换为模块(一件好事)。

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

    【讨论】:

    • 我在某处读到“一个文件是一个模块,一个模块是一个文件”,这对我来说意味着创建一个文件使其拥有自己的“范围”,对全局不可见。但你所说的,是不同的,是有道理的。我认为这在打字稿的文档中没有明确说明。谢谢!
    猜你喜欢
    • 1970-01-01
    • 2023-04-02
    • 1970-01-01
    • 1970-01-01
    • 2017-02-28
    • 1970-01-01
    • 1970-01-01
    • 2012-12-12
    • 1970-01-01
    相关资源
    最近更新 更多